Configuración de los buckets de Amazon S3 con la versión 3 de AWS SDK para PHP
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).
Los siguientes ejemplos muestran cómo:
-
Obtener la configuración CORS para un bucket utilizando GetBucketCors.
-
Establecer la configuración CORS para un bucket utilizando PutBucketCors.
Todo el código de ejemplo de AWS SDK para PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación con AWS mediante la versión 3 de AWS SDK para PHP. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.
Obtener la configuración CORS
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.
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
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.
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()); }