com.amazonaws.services.s3.S3ArnUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-s3 Show documentation
Show all versions of aws-java-sdk-s3 Show documentation
The AWS Java SDK for Amazon S3 module holds the client classes that are used for communicating with Amazon Simple Storage Service
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.s3;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.arn.Arn;
import com.amazonaws.arn.ArnResource;
import com.amazonaws.services.s3.internal.IntermediateOutpostResource;
import com.amazonaws.util.StringUtils;
@SdkInternalApi
public class S3ArnUtils {
private static final int OUTPOST_ID_START_INDEX = "outpost".length() + 1;
private S3ArnUtils() {
}
public static S3AccessPointResource parseS3AccessPointArn(Arn arn) {
return S3AccessPointResource.builder()
.withPartition(arn.getPartition())
.withRegion(arn.getRegion())
.withAccountId(arn.getAccountId())
.withAccessPointName(arn.getResource().getResource())
.build();
}
public static IntermediateOutpostResource parseOutpostArn(Arn arn) {
String resource = arn.getResourceAsString();
Integer outpostIdEndIndex = null;
for (int i = OUTPOST_ID_START_INDEX; i < resource.length(); ++i) {
char ch = resource.charAt(i);
if (ch == ':' || ch == '/') {
outpostIdEndIndex = i;
break;
}
}
if (outpostIdEndIndex == null) {
throw new IllegalArgumentException("Invalid format for S3 outpost ARN, missing outpostId");
}
String outpostId = resource.substring(OUTPOST_ID_START_INDEX, outpostIdEndIndex);
if (StringUtils.isNullOrEmpty(outpostId)) {
throw new IllegalArgumentException("Invalid format for S3 outpost ARN, missing outpostId");
}
String subresource = resource.substring(outpostIdEndIndex + 1);
if (StringUtils.isNullOrEmpty(subresource)) {
throw new IllegalArgumentException("Invalid format for S3 outpost ARN");
}
return IntermediateOutpostResource.builder()
.withOutpostId(outpostId)
.withOutpostSubresource(ArnResource.fromString(subresource))
.build();
}
}