

# Uso de puntos de acceso de varias regiones con operaciones API admitidas
<a name="MrapOperations"></a>

 Amazon S3 proporciona un conjunto de operaciones para administrar puntos de acceso de varias regiones. Amazon S3 procesa algunas de estas operaciones de forma sincrónica y otras asíncrona. Cuando se invoca una operación asincrónica, Amazon S3 primero autoriza sincrónicamente la operación solicitada. Si la autorización se realiza correctamente, Amazon S3 devuelve un token que puede utilizar para realizar un seguimiento del progreso y los resultados de la operación solicitada. 

**nota**  
Las solicitudes que se realizan a través de la consola de Amazon S3 siempre son sincrónicas. La consola espera hasta que se complete la solicitud antes de permitirle enviar otra solicitud. 

Puede ver el estado actual y los resultados de las operaciones asíncronas mediante la consola, o puede usar `DescribeMultiRegionAccessPointOperation` en la AWS CLI, los SDK de AWS o la API de REST. Amazon S3 proporciona un token de seguimiento en la respuesta a una operación asincrónica. Incluya ese token de seguimiento como argumento para `DescribeMultiRegionAccessPointOperation`. Si incluye el token de seguimiento, Amazon S3 devuelve el estado actual y los resultados de la operación especificada, incluidos los errores o la información pertinente de los recursos. Amazon S3 realiza operaciones de `DescribeMultiRegionAccessPointOperation` de forma sincrónica. 

Todas las solicitudes de plano de control para crear o mantener puntos de acceso de varias regiones se dirigen a la región `US West (Oregon)`. Para las solicitudes de plano de datos de puntos de acceso de varias regiones, no es necesario especificar las regiones. Para el plano de control de la conmutación por error del punto de acceso de varias regiones, la solicitud debe dirigirse a una de las cinco regiones admitidas. Para obtener más información acerca de la regiones admitidas por el punto de acceso multiregional, consulte [Restricciones y limitaciones de puntos de acceso de varias regiones](MultiRegionAccessPointRestrictions.md).

Además, deberá otorgar el permiso `s3:ListAllMyBuckets` al usuario, rol u otra entidad de AWS Identity and Access Management (IAM) que realice una solicitud para administrar un punto de acceso de varias regiones. 

Los ejemplos siguientes muestran cómo utilizar puntos de acceso de varias regiones con operaciones compatibles en Amazon S3.

**Topics**
+ [Compatibilidad de punto de acceso de varias regiones con Servicios de AWS y los SDK de AWS](#mrap-api-support)
+ [Compatibilidad de punto de acceso de varias regiones con operaciones de S3](#mrap-operations-support)
+ [Consultar la configuración de enrutamiento de puntos de acceso de varias regiones](#query-mrap-routing-configuration)
+ [Actualizar la política de bucket de Amazon S3 subyacente](#update-underlying-bucket-policy)
+ [Actualizar una configuración de enrutamiento del punto de acceso multirregional](#update-mrap-route-configuration)
+ [Añadir un objeto a un bucket en el punto de acceso de varias regiones](#add-bucket-mrap)
+ [Recuperar objetos de un punto de acceso de varias regiones](#get-object-mrap)
+ [Enumerar los objetos que están almacenados en un bucket subyacente a su punto de acceso de varias regiones](#list-objects-mrap)
+ [Utilice una URL prefirmada con puntos de acceso de varias regiones](#use-presigned-url-mrap)
+ [Uso de un bucket que se configura con pago por solicitante con puntos de acceso de varias regiones](#use-requester-pays-mrap)

## Compatibilidad de punto de acceso de varias regiones con Servicios de AWS y los SDK de AWS
<a name="mrap-api-support"></a>

Para usar un punto de acceso de varias regiones con aplicaciones que requieren un nombre de bucket de Amazon S3, utilice el nombre de recurso de Amazon (ARN) del punto de acceso de varias regiones al realizar solicitudes con un SDK de AWS. Para comprobar si los SDK de AWS son compatibles con los puntos de acceso de varias regiones, consulte [Compatibilidad con los SDK de AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-s3-mrap.html#s3-mrap-sdk-compat).

## Compatibilidad de punto de acceso de varias regiones con operaciones de S3
<a name="mrap-operations-support"></a>

Puede utilizar las siguientes operaciones de la API del plano de datos de Amazon S3 para realizar acciones en los objetos de los buckets asociados a su punto de acceso de varias regiones. Las siguientes operaciones de S3 pueden aceptar ARN de punto de acceso multirregional:
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)

**nota**  
Los puntos de acceso de varias regiones admiten operaciones de copia con puntos de acceso de varias regiones solo como destino o cuando se utiliza el ARN del punto de acceso de varias regiones.

Puede utilizar las siguientes operaciones del plano de control de Amazon S3 para crear y administrar sus puntos de acceso de varias regiones:
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointRoutes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointRoutes.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SubmitMultiRegionAccessPointRoutes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SubmitMultiRegionAccessPointRoutes.html)

## Consultar la configuración de enrutamiento de puntos de acceso de varias regiones
<a name="query-mrap-routing-configuration"></a>

------
#### [ AWS CLI ]

El comando de ejemplo siguiente recupera la configuración de enrutamiento del punto de acceso multirregional para que pueda ver los estados de enrutamiento actuales de los buckets. Para utilizar este comando de ejemplo, sustituya `user input placeholders` por su propia información.

```
aws s3control get-multi-region-access-point-routes
--region eu-west-1
--account-id 111122223333
--mrap arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap
```

------
#### [ SDK for Java ]

El código de SDK para Java siguiente recupera la configuración de enrutamiento del punto de acceso multirregional para que pueda ver los estados de enrutamiento actuales de los buckets. Para utilizar esta sintaxis de ejemplo, sustituya `user input placeholders` por su propia información.

```
S3ControlClient s3ControlClient = S3ControlClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider)
    .build();
 
GetMultiRegionAccessPointRoutesRequest request = GetMultiRegionAccessPointRoutesRequest.builder()
    .accountId("111122223333")
    .mrap("arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap")
    .build();
 
GetMultiRegionAccessPointRoutesResponse response = s3ControlClient.getMultiRegionAccessPointRoutes(request);
```

------
#### [ SDK for JavaScript ]

El código de SDK para JavaScript siguiente recupera la configuración de enrutamiento del punto de acceso multirregional para que pueda ver los estados de enrutamiento actuales de los buckets. Para utilizar esta sintaxis de ejemplo, sustituya `user input placeholders` por su propia información.

```
const REGION = 'us-east-1'
 
const s3ControlClient = new S3ControlClient({
  region: REGION
})
 
export const run = async () => {
  try {
    const data = await s3ControlClient.send(
      new GetMultiRegionAccessPointRoutesCommand({
        AccountId: '111122223333',
        Mrap: 'arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap',
      })
    )
    console.log('Success', data)
    return data
  } catch (err) {
    console.log('Error', err)
  }
}
 
run()
```

------
#### [ SDK for Python ]

El código de SDK para Python siguiente recupera la configuración de enrutamiento del punto de acceso multirregional para que pueda ver los estados de enrutamiento actuales de los buckets. Para utilizar esta sintaxis de ejemplo, sustituya `user input placeholders` por su propia información.

```
s3.get_multi_region_access_point_routes(
        AccountId=111122223333,
        Mrap=arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap)['Routes']
```

------

## Actualizar la política de bucket de Amazon S3 subyacente
<a name="update-underlying-bucket-policy"></a>

Para conceder el acceso adecuado, también debe actualizar la política de bucket de Amazon S3 subyacente. En el siguiente ejemplo se delega el control de acceso a la política de punto de acceso de varias regiones. Tras delegar el control de acceso a la política de punto de acceso de varias regiones, la política de bucket ya no se utiliza para el control de acceso cuando las solicitudes se realizan a través de ese punto de acceso de varias regiones.

A continuación, se muestra un ejemplo de política de bucket que delega el control de acceso a la política de punto de acceso multirregional. Para utilizar esta política de bucket de ejemplo, sustituya `user input placeholders` por su propia información. Para aplicar esta política mediante el comando AWS CLI `put-bucket-policy`, tal como se muestra en el siguiente ejemplo, guarde la política en un archivo, por ejemplo, `policy.json`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { 
        "AWS": "arn:aws:iam::444455556666:root" 
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "StringEquals": {
          "s3:DataAccessPointAccount": "444455556666"
        }
      }
    }
  ]
}
```

------

El comando de ejemplo `put-bucket-policy` siguiente asocia la política de bucket de S3 actualizada al bucket de S3:

```
aws s3api put-bucket-policy
  --bucket amzn-s3-demo-bucket
  --policy file:///tmp/policy.json
```

## Actualizar una configuración de enrutamiento del punto de acceso multirregional
<a name="update-mrap-route-configuration"></a>

El comando de ejemplo siguiente actualiza la configuración de enrutamiento del punto de acceso multirregional. Puede ejecutar comandos de enrutamiento de puntos de acceso de varias regiones en cualquiera de las siguientes cinco regiones:
+ `ap-southeast-2`
+ `ap-northeast-1`
+ `us-east-1`
+ `us-west-2`
+ `eu-west-1`

En una configuración de enrutamiento de puntos de acceso de varias regiones, puede configurar los buckets en un estado de enrutamiento activo o pasivo. Los buckets activos reciben tráfico, mientras que los buckets pasivos no. Puede establecer el estado de enrutamiento de un bucket configurando el valor `TrafficDialPercentage` del bucket en `100` para activo o `0` para pasivo. 

------
#### [ AWS CLI ]

El comando de ejemplo siguiente actualiza la configuración de enrutamiento del punto de acceso multirregional. En este ejemplo, `amzn-s3-demo-bucket1` se establece en estado activo y `amzn-s3-demo-bucket2` en pasivo. Para utilizar este comando de ejemplo, sustituya `user input placeholders` por su propia información.

```
aws s3control submit-multi-region-access-point-routes
--region ap-southeast-2 
--account-id 111122223333
--mrap arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap
--route-updates Bucket=amzn-s3-demo-bucket1,TrafficDialPercentage=100
                Bucket=amzn-s3-demo-bucket2,TrafficDialPercentage=0
```

------
#### [ SDK for Java ]

El código de SDK para Java siguiente actualiza la configuración de enrutamiento del punto de acceso multirregional. Para utilizar esta sintaxis de ejemplo, sustituya `user input placeholders` por su propia información.

```
S3ControlClient s3ControlClient = S3ControlClient.builder()
    .region(Region.ap-southeast-2)
    .credentialsProvider(credentialsProvider)
    .build();
 
SubmitMultiRegionAccessPointRoutesRequest request = SubmitMultiRegionAccessPointRoutesRequest.builder()
    .accountId("111122223333")
    .mrap("arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap")
    .routeUpdates(
        MultiRegionAccessPointRoute.builder()
            .region("eu-west-1")
            .trafficDialPercentage(100)
            .build(),
        MultiRegionAccessPointRoute.builder()
            .region("ca-central-1")
            .bucket("111122223333")
            .trafficDialPercentage(0)
            .build()
    )
    .build();
 
SubmitMultiRegionAccessPointRoutesResponse response = s3ControlClient.submitMultiRegionAccessPointRoutes(request);
```

------
#### [ SDK for JavaScript ]

El código de SDK para JavaScript siguiente actualiza la configuración de enrutamiento del punto de acceso multirregional. Para utilizar esta sintaxis de ejemplo, sustituya `user input placeholders` por su propia información.

```
const REGION = 'ap-southeast-2'
 
const s3ControlClient = new S3ControlClient({
  region: REGION
})
 
export const run = async () => {
  try {
    const data = await s3ControlClient.send(
      new SubmitMultiRegionAccessPointRoutesCommand({
        AccountId: '111122223333',
        Mrap: 'arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap',
        RouteUpdates: [
          {
            Region: 'eu-west-1',
            TrafficDialPercentage: 100,
          },
          {
            Region: 'ca-central-1',
            Bucket: 'amzn-s3-demo-bucket1',
            TrafficDialPercentage: 0,
          },
        ],
      })
    )
    console.log('Success', data)
    return data
  } catch (err) {
    console.log('Error', err)
  }
}
 
run()
```

------
#### [ SDK for Python ]

El código de SDK para Python siguiente actualiza la configuración de enrutamiento del punto de acceso multirregional. Para utilizar esta sintaxis de ejemplo, sustituya `user input placeholders` por su propia información.

```
s3.submit_multi_region_access_point_routes(
        AccountId=111122223333,
        Mrap=arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap, 
        RouteUpdates= [{
            'Bucket': amzn-s3-demo-bucket,
            'Region': ap-southeast-2, 
            'TrafficDialPercentage': 10
        }])
```

------

## Añadir un objeto a un bucket en el punto de acceso de varias regiones
<a name="add-bucket-mrap"></a>

Para añadir un objeto al bucket asociado al punto de acceso de varias regiones, puede utilizar la operación [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html). Para mantener sincronizados todos los buckets del punto de acceso de varias regiones, habilite la [replicación entre regiones](MultiRegionAccessPointBucketReplication.md).

**nota**  
Para utilizar esta operación, debe tener el permiso `s3:PutObject` para el punto de acceso de varias regiones. Para obtener más información acerca de los requisitos de los permisos del punto de acceso de varias regiones, consulte [Permisos](MultiRegionAccessPointPermissions.md).

------
#### [ AWS CLI ]

El siguiente ejemplo de solicitud de plano de datos carga *`example.txt`* en el punto de acceso de varias regiones especificado. Para utilizar este ejemplo, sustituya *`user input placeholders`* por su propia información.

```
aws s3api put-object --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap --key example.txt --body example.txt
```

------
#### [ SDK for Java ]

```
S3Client s3Client = S3Client.builder()
        .build();
        
PutObjectRequest objectRequest = PutObjectRequest.builder()
        .bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap")
        .key("example.txt")
        .build();

s3Client.putObject(objectRequest, RequestBody.fromString("Hello S3!"));
```

------
#### [ SDK for JavaScript ]

```
const client = new S3Client({});

async function putObjectExample() {
    const command = new PutObjectCommand({
        Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap",
        Key: "example.txt",
        Body: "Hello S3!",
    });
    
    try {
        const response = await client.send(command);
        console.log(response);
    } catch (err) {
        console.error(err);
    }
}
```

------
#### [ SDK for Python ]

```
import boto3

client = boto3.client('s3')
client.put_object(
    Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap',
    Key='example.txt',
    Body='Hello S3!'
)
```

------

## Recuperar objetos de un punto de acceso de varias regiones
<a name="get-object-mrap"></a>

Para recuperar objetos del punto de acceso de varias regiones, puede utilizar la operación[https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html).

**nota**  
Para utilizar esta operación de la API, debe tener el permiso `s3:GetObject` para el punto de acceso de varias regiones. Para obtener más información acerca de los requisitos de los permisos del punto de acceso de varias regiones, consulte [Permisos](MultiRegionAccessPointPermissions.md).

------
#### [ AWS CLI ]

El siguiente ejemplo de solicitud de plano de datos recupera *`example.txt`* del punto de acceso de varias regiones especificado y lo descarga como *`downloaded_example.txt`*. Para utilizar este ejemplo, sustituya *`user input placeholders`* por su propia información.

```
aws s3api get-object --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap --key example.txt downloaded_example.txt
```

------
#### [ SDK for Java ]

```
S3Client s3 = S3Client
   .builder()
   .build();

GetObjectRequest getObjectRequest = GetObjectRequest.builder()
    .bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap")
    .key("example.txt")
    .build();

s3Client.getObject(getObjectRequest);
```

------
#### [ SDK for JavaScript ]

```
const client = new S3Client({})

async function getObjectExample() {
    const command = new GetObjectCommand({
        Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap",
        Key: "example.txt"
    });
    
    try {
        const response = await client.send(command);
        console.log(response);
    } catch (err) {
        console.error(err);
    }
}
```

------
#### [ SDK for Python ]

```
import boto3

client = boto3.client('s3')
client.get_object(
    Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap',
    Key='example.txt'
)
```

------

## Enumerar los objetos que están almacenados en un bucket subyacente a su punto de acceso de varias regiones
<a name="list-objects-mrap"></a>

Para devolver una lista de objetos que están almacenados en un bucket subyacente a su punto de acceso de varias regiones, use la operación [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html). En el siguiente comando de ejemplo, todos los objetos del punto de acceso de varias regiones especificado se enumeran con el ARN del punto de acceso de varias regiones. En este caso, el ARN del punto de acceso de varias regiones es:

`arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap`

**nota**  
Para utilizar esta operación de la API, debe tener el permiso `s3:ListBucket` para el punto de acceso de varias regiones y el bucket subyacente. Para obtener más información acerca de los requisitos de los permisos del punto de acceso de varias regiones, consulte [Permisos](MultiRegionAccessPointPermissions.md).

------
#### [ AWS CLI ]

En el siguiente ejemplo de solicitud de plano de datos se enumeran los objetos del bucket que subyace al punto de acceso de varias regiones especificado por el ARN. Para utilizar este ejemplo, sustituya *`user input placeholders`* por su propia información.

```
aws s3api list-objects-v2 --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap
```

------
#### [ SDK for Java ]

```
S3Client s3Client = S3Client.builder()
        .build();
        
String bucketName = "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap";

ListObjectsV2Request listObjectsRequest = ListObjectsV2Request
    .builder()
    .bucket(bucketName)
    .build();

 s3Client.listObjectsV2(listObjectsRequest);
```

------
#### [ SDK for JavaScript ]

```
const client = new S3Client({});

async function listObjectsExample() {
    const command = new ListObjectsV2Command({
        Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap",
    });
    
    try {
        const response = await client.send(command);
        console.log(response);
    } catch (err) {
        console.error(err);
    }
}
```

------
#### [ SDK for Python ]

```
import boto3

client = boto3.client('s3')
client.list_objects_v2(
    Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap'
)
```

------

## Utilice una URL prefirmada con puntos de acceso de varias regiones
<a name="use-presigned-url-mrap"></a>

Puede usar una URL prefirmada para generar una URL que permita a los demás acceder a los buckets de Amazon S3 a través de un punto de acceso de varias regiones de Amazon S3. Cuando crea una URL prefirmada, la asocia a una acción de objeto específica, como una carga de S3 (`PutObject`) o una descarga de S3 (`GetObject`). Puede compartir la URL prefirmada y cualquiera que tenga acceso a ella puede realizar la acción incrustada en la URL como si fuera el usuario de la firma original.

Las URL prefirmadas tienen fecha de vencimiento. Cuando se alcance el tiempo del vencimiento, la URL dejará de funcionar. 

Antes de utilizar los puntos de acceso de varias regiones de S3 con URL prefirmadas, compruebe la [Compatibilidad del SDK de AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-s3-mrap.html#s3-mrap-sdk-compat) con el algoritmo SigV4A. Compruebe que la versión del SDK sea compatible con SigV4A como implementación de firma que se utiliza para firmar las solicitudes de Región de AWS globales. Para obtener más información sobre el uso de las URL prefirmadas con Amazon S3, consulte [Compartir objetos mediante URL prefirmadas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html).

En los siguientes ejemplos, se muestra cómo puede utilizar puntos de acceso de varias regiones con URL prefirmadas. Para utilizar estos ejemplos, sustituya *`user input placeholders`* por su propia información.

------
#### [ AWS CLI ]

```
aws s3 presign arn:aws:s3::123456789012:accesspoint/MultiRegionAccessPoint_alias/example-file.txt
```

------
#### [ SDK for Python ]

```
import logging
import boto3
from botocore.exceptions import ClientError

s3_client = boto3.client('s3',aws_access_key_id='xxx',aws_secret_access_key='xxx')
s3_client.generate_presigned_url(HttpMethod='PUT',ClientMethod="put_object", Params={'Bucket':'arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap','Key':'example-file'})
```

------
#### [ SDK for Java ]

```
S3Presigner s3Presigner = S3Presigner.builder()
    .credentialsProvider(StsAssumeRoleCredentialsProvider.builder()
        .refreshRequest(assumeRole)
        .stsClient(stsClient)
        .build())
    .build();

GetObjectRequest getObjectRequest = GetObjectRequest.builder()
    .bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap")
    .key("example-file")
    .build();

GetObjectPresignRequest preSignedReq = GetObjectPresignRequest.builder()
    .getObjectRequest(getObjectRequest)
    .signatureDuration(Duration.ofMinutes(10))
    .build();

PresignedGetObjectRequest presignedGetObjectRequest = s3Presigner.presignGetObject(preSignedReq);
```

------

**nota**  
Para usar SigV4a con credenciales de seguridad temporales (por ejemplo, cuando se utilizan roles de IAM), asegúrese de solicitar las credenciales temporales desde un punto de conexión regional en AWS Security Token Service (AWS STS), en lugar de un punto de conexión global. Si usa el punto de conexión global para AWS STS (`sts.amazonaws.com`), AWS STS generará credenciales temporales a partir de un punto de conexión global, lo cual no es compatible con Sig4A. Como resultado, obtendrá un error. Para resolver este problema, utilice cualquiera de los [Puntos de conexión regionales para AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#id_credentials_region-endpoints).

## Uso de un bucket que se configura con pago por solicitante con puntos de acceso de varias regiones
<a name="use-requester-pays-mrap"></a>

Si el bucket de S3 asociado a sus puntos de acceso de varias regiones está [configurado para usar Pago por solicitante](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysExamples.html), el solicitante pagará tanto por la solicitud de bucket y la descarga, como por los costos relacionados con los puntos de acceso de varias regiones. Para obtener más información, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

Este es un ejemplo de una solicitud de plano de datos a un punto de acceso de varias regiones que está conectado a un bucket Pago por solicitante.

------
#### [ AWS CLI ]

Para descargar objetos de un punto de acceso de varias regiones que está conectado a un bucket Pago por solicitante, especifique `--request-payer requester` como parte de la solicitud [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html). También debe especificar el nombre del archivo en el bucket, así como la ubicación en la que debe almacenarse.

```
aws s3api get-object --bucket MultiRegionAccessPoint_ARN --request-payer requester --key example-file-in-bucket.txt example-location-of-downloaded-file.txt 
```

------
#### [ SDK for Java ]

Para descargar objetos de un punto de acceso de varias regiones que está conectado a un bucket Pago por solicitante, especifique `RequestPayer.REQUESTER` como parte de la solicitud `GetObject`. También debe especificar el nombre del archivo en el bucket, así como la ubicación en la que debe almacenarse.

```
GetObjectResponse getObjectResponse = s3Client.getObject(GetObjectRequest.builder()
    .key("example-file.txt")
    .bucket("arn:aws:s3::
123456789012:accesspoint/abcdef0123456.mrap")
    .requestPayer(RequestPayer.REQUESTER)
    .build()
).response();
```

------