

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de los buckets de Amazon S3 con la versión 3 de AWS SDK para PHP
<a name="s3-examples-configuring-a-bucket"></a>

El uso compartido de recursos entre orígenes (CORS) define una manera para que las aplicaciones web de los clientes cargadas en un dominio interactúen con los recursos de un dominio diferente. Gracias a la compatibilidad con CORS en Amazon S3, puede desarrollar aplicaciones web del lado del cliente completas con Amazon S3 y permitir el acceso entre orígenes a sus recursos de Amazon S3 de forma selectiva.

Para obtener más información sobre el uso de la configuración CORS con un bucket de Amazon S3, consulte [Uso compartido de recursos entre orígenes (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html).

Los siguientes ejemplos muestran cómo:
+ Obtener la configuración CORS para un bucket utilizando [GetBucketCors](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#getbucketcors).
+ Establecer la configuración CORS para un bucket utilizando [PutBucketCors](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putbucketcors).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

## Obtener la configuración CORS
<a name="get-the-cors-configuration"></a>

Cree un archivo PHP con el siguiente código. En primer lugar, cree un servicio de cliente AWS.S3, luego llame al método `getBucketCors` y especifique el bucket cuya configuración CORS desea.

El único parámetro necesario es el nombre del bucket seleccionado. Si el bucket tiene actualmente una configuración CORS, Amazon S3 devuelve dicha configuración como [objeto CORSRules](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#shape-corsrule).

 **Importaciones** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\S3\S3Client;
```

 **Código de muestra** 

```
$client = new S3Client([
    'profile' => 'default',
    'region' => 'us-west-2',
    'version' => '2006-03-01'
]);

try {
    $result = $client->getBucketCors([
        'Bucket' => $bucketName, // REQUIRED
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Establecer la configuración CORS
<a name="set-the-cors-configuration"></a>

Cree un archivo PHP con el siguiente código. En primer lugar, cree un servicio de cliente de AWS.S3. A continuación, llame al método `putBucketCors` y especifique el bucket cuya configuración CORS desea establecer y la CORSConfiguration como [objeto JSON CORSRules](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#shape-corsrule).

 **Importaciones** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\S3\S3Client;
```

 **Código de muestra** 

```
$client = new S3Client([
    'profile' => 'default',
    'region' => 'us-west-2',
    'version' => '2006-03-01'
]);

try {
    $result = $client->putBucketCors([
        'Bucket' => $bucketName, // REQUIRED
        'CORSConfiguration' => [ // REQUIRED
            'CORSRules' => [ // REQUIRED
                [
                    'AllowedHeaders' => ['Authorization'],
                    'AllowedMethods' => ['POST', 'GET', 'PUT'], // REQUIRED
                    'AllowedOrigins' => ['*'], // REQUIRED
                    'ExposeHeaders' => [],
                    'MaxAgeSeconds' => 3000
                ],
            ],
        ]
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```