將對象上傳到 Outposts 存儲桶上的 S3 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將對象上傳到 Outposts 存儲桶上的 S3

物件是存放在 Amazon S3 on Outposts 中的基本實體。每個物件都包含在儲存貯體中。您必須使用存取點來存取 Outpost 儲存貯體中的任何物件。針對物件操作指定儲存貯體時,您可以使用存取點 Amazon Resource Name (ARN) 或存取點別名。如需存取點別名的詳細資訊,請參閱 針對您的 S3 on Outposts 儲存貯體存取點使用儲存貯體樣式別名

下列範例顯示 Outposts 存取點上 S3 的 ARN 格式,其中包括前哨所在地區的程式 AWS 區域 碼、ID、前哨 AWS 帳戶 ID 和存取點名稱:

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

如需 S3 on Outposts ARN 的詳細資訊,請參閱 Out ARNs posts S3 的資源

對於 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 範例說明如何使用存取點將物件上傳至 Outposts 儲存貯體上的 S3。

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 的開發套件,將物件放置在 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(); } } }