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.
Creación y utilización de buckets de Amazon S3 con la versión 3 de AWS SDK for PHP
Los siguientes ejemplos muestran cómo:
-
Devuelve una lista de los depósitos propiedad del remitente autenticado de la solicitud que utiliza. ListBuckets
-
Cree un nuevo depósito con. CreateBucket
-
Agrega un objeto a un cubo usando PutObject.
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
Importaciones
require 'vendor/autoload.php'; use Aws\S3\S3Client;
Obtener una lista de buckets
Cree un archivo PHP con el siguiente código. En primer lugar, cree un servicio cliente AWS.S3 que especifique la región de AWS y la versión. A continuación, llame al método listBuckets
, que devuelve todos los buckets de Amazon S3 que pertenecen al remitente de la solicitud como una matriz de estructuras Bucket.
Código de muestra
$s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); //Listing all S3 Bucket $buckets = $s3Client->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . "\n"; }
Crear un bucket
Cree un archivo PHP con el siguiente código. En primer lugar, cree un servicio cliente AWS.S3 que especifique la región de AWS y la versión. Llame entonces al método createBucket
con una matriz como parámetro. El único campo obligatorio es la clave 'Bucket', con un valor de cadena para el nombre del bucket que desea crear. Sin embargo, puede especificar la AWS región con el campo CreateBucketConfiguration «». Si se ejecuta correctamente, este método devuelve la ubicación del bucket.
Código de muestra
function createBucket($s3Client, $bucketName) { try { $result = $s3Client->createBucket([ 'Bucket' => $bucketName, ]); return 'The bucket\'s location is: ' . $result['Location'] . '. ' . 'The bucket\'s effective URI is: ' . $result['@metadata']['effectiveUri']; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function createTheBucket() { $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2006-03-01' ]); echo createBucket($s3Client, 'my-bucket'); } // Uncomment the following line to run this code in an AWS account. // createTheBucket();
Colocar un objeto en un bucket
Para añadir archivos a su nuevo bucket, cree un archivo PHP con el código siguiente.
Ejecute este archivo en la línea de comandos y especificando una cadena con el nombre del bucket en el que desea cargar su archivo, seguido de la ruta completa del archivo que desea cargar.
Código de muestra
$USAGE = "\n" . "To run this example, supply the name of an S3 bucket and a file to\n" . "upload to it.\n" . "\n" . "Ex: php PutObject.php <bucketname> <filename>\n"; if (count($argv) <= 2) { echo $USAGE; exit(); } $bucket = $argv[1]; $file_Path = $argv[2]; $key = basename($argv[2]); try { //Create a S3Client $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); $result = $s3Client->putObject([ 'Bucket' => $bucket, 'Key' => $key, 'SourceFile' => $file_Path, ]); } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }