Obtenir un objet à partir d'un compartiment Amazon S3 on Outposts - Amazon S3 on Outposts

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Obtenir un objet à partir d'un compartiment Amazon S3 on Outposts

Les objets sont les entités fondamentales stockées dans S3 on Outposts. Chaque objet est contenu dans un compartiment. Vous devez utiliser des points d'accès pour accéder à tout objet dans un compartiment Outpost. Lorsque vous spécifiez le compartiment pour les opérations sur les objets, vous utilisez le point d'accès Amazon Resource Name (ARN) ou l'alias du point d'accès. Pour plus d'informations sur les alias de point d'accès, consultez Utilisation d'un alias de type compartiment pour le point d'accès de votre compartiment S3 sur Outposts.

L'exemple suivant montre le ARN format des points d'accès S3 sur les Outposts, qui inclut le Région AWS code de la région dans laquelle l'Outpost est hébergé, l'ID, l' Compte AWS ID de l'Outpost et le nom du point d'accès :

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

Pour plus d'informations sur S3 on OutpostsARNs, consultez. Ressource ARNs pour S3 sur les Outposts

Avec Amazon S3 on Outposts, les données des objets sont toujours stockées sur l'Outpost. Lorsque vous AWS installez un rack Outpost, vos données restent locales dans votre Outpost afin de répondre aux exigences de résidence des données. Vos objets ne quittent jamais votre Outpost et ne se trouvent pas dans un Région AWS. Comme il AWS Management Console est hébergé dans la région, vous ne pouvez pas utiliser la console pour télécharger ou gérer des objets dans votre Outpost. Cependant, vous pouvez utiliser le RESTAPI, AWS Command Line Interface (AWS CLI) et AWS SDKs pour télécharger et gérer vos objets via vos points d'accès.

Les exemples suivants vous montrent comment télécharger (obtenir) un objet à l'aide de l’ AWS Command Line Interface (AWS CLI) et de AWS SDK for Java.

L'exemple suivant obtient un objet nommé sample-object.xml à partir d'un compartiment S3 on Outposts (s3-outposts:GetObject) à l'aide de l’ AWS CLI. Pour utiliser cette commande, remplacez chaque user input placeholder par vos propres informations. Pour de plus amples informations sur cette commande, veuillez consulter get-object dans le document AWS CLI Reference.

aws s3api get-object --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point --key testkey sample-object.xml

L'exemple suivant de S3 on Outposts permet d'obtenir un objet à l'aide de SDK for Java. Pour utiliser cet exemple, remplacez chaque user input placeholder par vos propres informations. Pour plus d'informations, consultez GetObjectle manuel Amazon Simple Storage Service API Reference.

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.GetObjectRequest; import com.amazonaws.services.s3.model.ResponseHeaderOverrides; import com.amazonaws.services.s3.model.S3Object; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class GetObject { public static void main(String[] args) throws IOException { String accessPointArn = "*** access point ARN ***"; String key = "*** Object key ***"; S3Object fullObject = null, objectPortion = null, headerOverrideObject = null; 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(); // Get an object and print its contents. System.out.println("Downloading an object"); fullObject = s3Client.getObject(new GetObjectRequest(accessPointArn, key)); System.out.println("Content-Type: " + fullObject.getObjectMetadata().getContentType()); System.out.println("Content: "); displayTextInputStream(fullObject.getObjectContent()); // Get a range of bytes from an object and print the bytes. GetObjectRequest rangeObjectRequest = new GetObjectRequest(accessPointArn, key) .withRange(0, 9); objectPortion = s3Client.getObject(rangeObjectRequest); System.out.println("Printing bytes retrieved."); displayTextInputStream(objectPortion.getObjectContent()); // Get an entire object, overriding the specified response headers, and print the object's content. ResponseHeaderOverrides headerOverrides = new ResponseHeaderOverrides() .withCacheControl("No-cache") .withContentDisposition("attachment; filename=example.txt"); GetObjectRequest getObjectRequestHeaderOverride = new GetObjectRequest(accessPointArn, key) .withResponseHeaders(headerOverrides); headerOverrideObject = s3Client.getObject(getObjectRequestHeaderOverride); displayTextInputStream(headerOverrideObject.getObjectContent()); } 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(); } finally { // To ensure that the network connection doesn't remain open, close any open input streams. if (fullObject != null) { fullObject.close(); } if (objectPortion != null) { objectPortion.close(); } if (headerOverrideObject != null) { headerOverrideObject.close(); } } } private static void displayTextInputStream(InputStream input) throws IOException { // Read the text input stream one line at a time and display each line. BufferedReader reader = new BufferedReader(new InputStreamReader(input)); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } System.out.println(); } }