Kopieren eines Objekts in einem Amazon S3 on Outposts-Bucket mit AWS SDK für Java - Amazon S3 on Outposts

Kopieren eines Objekts in einem Amazon S3 on Outposts-Bucket mit AWS SDK für Java

Objekte sind die Grundeinheiten, die in Amazon S3 on Outposts gespeichert sind. Jedes Objekt ist in einem Bucket enthalten. Sie müssen Zugriffspunkte verwenden, um auf ein Objekt in einem Outpost-Bucket zuzugreifen. Wenn Sie den Bucket für Objektoperationen angeben, verwenden Sie den Amazon-Ressourcennamen (ARN) oder den Alias des Zugriffspunkts. Weitere Informationen zu Zugriffspunkt-Aliassen finden Sie unter Verwenden eines Alias im Bucket-Stil für den Zugriffspunkt Ihres S3-on-Outposts-Buckets.

Das folgende Beispiel zeigt das ARN-Format für S3-on-Outposts-Objekte, das den AWS-Region-Code für die Region, in der sich der Outpost befindet, die AWS-Konto-ID, Outpost-ID, Bucket-Name und den Namen des Zugriffspunkts umfasst:

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

Weitere Informationen zu S3-in-Outposts-ARNs finden Sie unter Ressourcen-ARNs für S3 on Outposts.

Mit Amazon S3 on Outposts werden Objektdaten immer im Outpost gespeichert. Wenn AWS ein Outpost-Rack installiert, bleiben Ihre Daten in Ihrem Outpost lokal, um die Anforderungen an die Datenspeicherorte zu erfüllen. Ihre Objekte verlassen niemals Ihren Outpost und befinden sich nicht in einer AWS-Region. Da die AWS-Managementkonsole innerhalb der Region gehostet wird, können Sie die Konsole nicht verwenden, um Objekte in Ihrem Outpost hochzuladen oder zu verwalten. Sie können die REST-API, AWS Command Line Interface (AWS CLI) und AWS-SDKs zum Hochladen und Verwalten Ihrer Objekte über Ihre Zugriffspunkte verwenden.

Das folgenden Beispiel veranschaulicht, wie Sie mithilfe von ein Objekt in einem S3-on-Outposts-Bucket kopieren AWS SDK für Java.

Verwenden des AWS-SDK für Java

Im folgenden S3-on-Outposts-Beispiel wird ein Objekt mithilfe des SDK für Java in ein neues Objekt im selben Bucket kopiert. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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.CopyObjectRequest; public class CopyObject { public static void main(String[] args) { String accessPointArn = "*** access point ARN ***"; String sourceKey = "*** Source object key ***"; String destinationKey = "*** Destination object key ***"; 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(); // Copy the object into a new object in the same bucket. CopyObjectRequest copyObjectRequest = new CopyObjectRequest(accessPointArn, sourceKey, accessPointArn, destinationKey); s3Client.copyObject(copyObjectRequest); } 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(); } } }