S3 on Outposts 버킷에 객체 업로드 - Amazon Simple Storage Service

S3 on Outposts 버킷에 객체 업로드

객체는 Amazon S3 on Outposts에 저장되는 기본 개체입니다. 모든 객체는 어떤 버킷에 포함됩니다. Outpost 버킷의 객체에 액세스하려면 액세스 포인트를 사용해야 합니다. 객체 작업에 버킷을 지정할 때 액세스 포인트 이름이 포함된 액세스 포인트 Amazon 리소스 이름(ARN) 또는 액세스 포인트 별칭을 사용합니다. 액세스 포인트 별칭에 대한 자세한 내용은 S3 on Outposts 버킷 액세스 포인트에 버킷 스타일 별칭 사용 섹션을 참조하세요.

다음 예제는 S3 on Outposts 액세스 포인트에 대한 ARN 형식을 보여줍니다. 여기에는 Outpost가 있는 리전의 AWS 리전 코드, AWS 계정 ID, Outpost ID 및 액세스 포인트 이름이 포함됩니다.

arn:aws:s3-outposts:region:account-id:outpost/outpost-id/accesspoint/accesspoint-name

S3 on Outposts ARN에 대한 자세한 내용은 S3 on Outposts의 리소스 ARN 단원을 참조하세요.

Amazon S3 on Outposts를 사용할 경우 객체 데이터는 항상 Outpost에 저장됩니다. AWS가 Outpost 랙을 설치하는 경우 데이터 상주 요구 사항을 충족하기 위해 데이터가 Outpost에 로컬로 유지됩니다. 객체는 Outpost에서 벗어나지 않으며 AWS 리전에 있지 않습니다. AWS Management Console이 리전 내에 호스팅되므로 콘솔을 사용하여 Outpost의 객체를 업로드하거나 관리할 수 없습니다. 그러나 REST API, AWS Command Line Interface(AWS CLI), AWS SDK를 사용하여 액세스 포인트를 통해 객체를 업로드하고 관리할 수 있습니다.

다음 AWS CLI 및 AWS SDK for Java 예제에서는 액세스 포인트를 사용하여 S3 on Outposts 버킷에 객체를 업로드하는 방법을 보여줍니다.

AWS CLI

다음 예제에서는 AWS CLI를 사용하여 sample-object.xml이라는 객체를 S3 on Outposts 버킷(s3-outposts:PutObject)에 배치합니다. 이 명령을 사용하려면 각 user input placeholder를 사용자의 정보로 대체합니다. 이 명령에 대한 자세한 내용은 AWS CLI 참조put-object를 참조하세요.

aws s3api put-object --bucket arn:aws:s3-outposts:Region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point --key sample-object.xml --body sample-object.xml
SDK for Java

다음 예제에서는 Java용 SDK를 사용하여 S3 on Outposts 버킷에 객체를 배치합니다. 이 예제를 사용하려면 각 user input placeholder를 사용자의 정보로 대체합니다. 자세한 내용은 객체 업로드 단원을 참조하십시오.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; import java.io.File; public class PutObject { public static void main(String[] args) { String accessPointArn = "*** access point ARN ***"; String stringObjKeyName = "*** String object key name ***"; String fileObjKeyName = "*** File object key name ***"; String fileName = "*** Path to file to upload ***"; try { // This code expects that you have AWS credentials set up per: // https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .enableUseArnRegion() .build(); // Upload a text string as a new object. s3Client.putObject(accessPointArn, stringObjKeyName, "Uploaded String Object"); // Upload a file as a new object with ContentType and title specified. PutObjectRequest request = new PutObjectRequest(accessPointArn, fileObjKeyName, new File(fileName)); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType("plain/text"); metadata.addUserMetadata("title", "someTitle"); request.setMetadata(metadata); s3Client.putObject(request); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }