Obtención de listas de objetos en un bucket de Amazon S3 en Outposts
Los objetos son las entidades fundamentales almacenadas en Amazon S3 en Outposts. Cada objeto está almacenado en un bucket. Debe utilizar puntos de acceso para acceder a cualquier objeto de un bucket de Outpost. Cuando especifica el bucket para las operaciones de objetos, se utiliza el Nombre de recurso de Amazon (ARN) del punto de acceso o el alias del punto de acceso. Para obtener más información acerca de los alias de punto de acceso, consulte Uso de un alias de estilo de bucket para su punto de acceso de bucket de S3 en Outposts.
En el siguiente ejemplo se muestra el formato ARN para los puntos de acceso de S3 en Outposts, que incluye el código Región de AWS de la Región a la que pertenece el Outpost, el ID de Cuenta de AWS, el ID de Outposts y el nombre del punto de acceso:
arn:aws:s3-outposts:
region
:account-id
:outpost/outpost-id
/accesspoint/accesspoint-name
Para obtener más información acerca de S3 en Outposts, consulte ARN de recursos para S3 en Outposts.
nota
Con Amazon S3 en Outposts, los datos de objeto siempre se almacenan en el Outpost. Cuando AWS instala un bastidor de Outpost, sus datos permanecen de manera local en su Outpost para cumplir los requisitos de residencia de datos. Sus objetos nunca salen de su Outpost y no están en una Región de AWS. Ya que la AWS Management Console está alojada dentro de la región, no puede usar la consola para cargar o administrar objetos en su Outpost. Sin embargo, puede utilizar la API de REST, AWS Command Line Interface (AWS CLI) y los SDK de AWS para cargar y administrar los objetos a través de los puntos de acceso.
En los siguientes ejemplos, se muestra cómo obtener una lista de objetos de un bucket de S3 en Outposts mediante AWS CLI y AWS SDK for Java.
En el siguiente ejemplo, se muestran los objetos en un bucket de S3 en Outposts (s3-outposts:ListObjectsV2
) mediante AWS CLI. Para usar este comando, sustituya
por su propia información. Para obtener más información acerca de este comando, consulte list-objects-v2user input placeholder
aws s3api list-objects-v2 --bucket arn:aws:s3-outposts:
region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outposts-access-point
nota
Al utilizar esta acción con Amazon S3 en Outposts a través de SDK de AWS, proporciona el ARN del punto de acceso de Outposts en lugar del nombre del bucket, en la siguiente manera: arn:aws:s3-outposts:
. Para obtener más información acerca de S3 en Outposts, consulte ARN de recursos para S3 en Outposts.region
:123456789012
:outpost/op-01ac5d28a6a232904
/accesspoint/example-Outposts-Access-Point
En el siguiente ejemplo de S3 en Outposts, se muestran objetos en un bucket mediante el SDK para Java. Para utilizar este ejemplo, sustituya
por su propia información. user input
placeholder
importante
En este ejemplo se utiliza ListObjectsV2, que es la revisión más reciente de la operación de la API ListObjects
. Recomendamos usar esta operación de API revisada para el desarrollo de aplicaciones. Para garantizar la compatibilidad con versiones anteriores, Amazon S3 aún es compatible con la versión anterior de esta operación de API.
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.ListObjectsV2Request; import com.amazonaws.services.s3.model.ListObjectsV2Result; import com.amazonaws.services.s3.model.S3ObjectSummary; public class ListObjectsV2 { public static void main(String[] args) { String accessPointArn = "
*** access point ARN ***
"; 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(); System.out.println("Listing objects"); // maxKeys is set to 2 to demonstrate the use of // ListObjectsV2Result.getNextContinuationToken() ListObjectsV2Request req = new ListObjectsV2Request().withBucketName(accessPointArn).withMaxKeys(2); ListObjectsV2Result result; do { result = s3Client.listObjectsV2(req); for (S3ObjectSummary objectSummary : result.getObjectSummaries()) { System.out.printf(" - %s (size: %d)\n", objectSummary.getKey(), objectSummary.getSize()); } // If there are more than maxKeys keys in the bucket, get a continuation token // and list the next objects. String token = result.getNextContinuationToken(); System.out.println("Next Continuation Token: " + token); req.setContinuationToken(token); } while (result.isTruncated()); } 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(); } } }