Copia de un objeto en un bucket de Amazon S3 en Outposts utilizando AWS SDK for Java - Amazon S3 en Outposts

Copia de un objeto en un bucket de Amazon S3 en Outposts utilizando AWS SDK for Java

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.

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 bucket de S3 en Outposts con AWS SDK for Java.

Uso de AWS SDK para Java

En el siguiente ejemplo de S3 en Outposts, se copia un objeto a un objeto nuevo en el mismo bucket con el SDK para Java. Para utilizar este ejemplo, reemplace los user input placeholders con su propia información.

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(); } } }