✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cargar archivos en Amazon S3 mediante AWS PHP SDK

522

¿Desea cargar archivos a Amazon S3 mediante programación? Amazon S3 es un servicio de almacenamiento en la nube donde se pueden almacenar archivos, imágenes, etc. Estos documentos pueden ser públicos o privados según la elección del propietario. En este artículo, estudiamos cómo cargar archivos en Amazon S3 utilizando la biblioteca oficial de AWS PHP SDK.

Amazon S3 proporciona almacenamiento de objetos de gran escalabilidad. Debido a su robustez y rendimiento, es un servicio en la nube popular entre los usuarios.

¿Por qué es necesario cargar archivos en Amazon S3?

Bueno, hay varias razones para mantener sus archivos en Amazon S3. Como es un servicio basado en la nube, puede acceder a sus archivos desde cualquier lugar. Al utilizar este servicio, los usuarios pueden mantener la confidencialidad de sus documentos. AWS le proporciona una función para mantener su documento público o privado. En segundo lugar, si está ejecutando un sitio web, mantener sus archivos en la nube le ahorrará mucho ancho de banda. Ahorra espacio de alojamiento y reduce las cargas en su servidor.

Dicho esto, echemos un vistazo a cómo cargar archivos en Amazon S3 usando PHP.

Obtenga sus credenciales de seguridad

Para comenzar con S3, debe tener una cuenta en AWS. Después de crear la cuenta de AWS, asegúrese de activar el servicio S3 siguiendo su proceso de verificación.

Al activar el servicio S3, obtenga sus credenciales de seguridad que necesitaremos mientras trabajamos con las API.

Cargar archivos en Amazon S3 mediante AWS PHP SDK

Código para cargar archivos a Amazon S3

Estamos listos con las claves API de AWS. A continuación, instale una biblioteca oficial de AWS PHP SDK en su proyecto. Recomiendo usar Composer para instalar esta biblioteca. Abra la terminal en el directorio raíz de su proyecto y ejecute el siguiente comando.

composer require aws/aws-sdk-php

Este comando instalará la biblioteca con sus dependencias en su proyecto.

Crear un depósito en AWS

En AWS, necesitamos crear un Bucket para almacenar nuestros archivos. El depósito no es más que una unidad lógica de almacenamiento en AWS. Todos sus archivos se almacenarán dentro del depósito.

Puede crear un depósito en el panel de S3 directamente. Pero si alguien está buscando crearlo dinámicamente, consulte el código a continuación.

create-bucket.php

<?php
require 'vendor/autoload.php';
use AwsS3S3Client;
 
$bucketName = 'YOUR_BUCKET_NAME';
 
$client = new S3Client([
    'version' => 'latest',
    'region' => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
try {
    $result = $client->createBucket([
        'Bucket' => $bucketName, // REQUIRED
        'ACL'    => 'public-read',
    ]);
    echo "Bucket created successfully.";
} catch (AwsS3ExceptionS3Exception $e) {
    // output error message if fails
    echo $e->getMessage();
}

Asegúrese de reemplazar los marcadores de posición con los valores reales. Este código crea un depósito en su panel de S3. Subiremos los archivos de este depósito a través de la API.

En el código anterior pasé el par clave => valor como 'ACL' => 'public-read'. Este par establece el acceso público a su depósito o archivos. Si desea mantener su almacenamiento privado, elimine esta línea del código.

El siguiente trabajo es escribir código para cargar archivos en Amazon S3. Por el bien del tutorial, estoy creando diferentes archivos PHP y escribiendo código en ellos. En su caso, no dude en implementar la lógica en función del flujo de su proyecto.

Cargar archivo en Amazon S3

Está listo con el depósito para almacenar sus archivos. Cree un archivo upload-to-s3.phpy coloque el siguiente código en este archivo.

upload-to-s3.php

<?php
require 'vendor/autoload.php';
 
use AwsS3S3Client;
 
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
 
$bucketName = 'YOUR_BUCKET_NAME';
$file_Path = __DIR__. '/my-image.png';
$key = basename($file_Path);
 
// Upload a publicly accessible file. The file size and type are determined by the SDK.
try {
    $result = $s3->putObject([
        'Bucket' => $bucketName,
        'Key'    => $key,
        'Body'   => fopen($file_Path, 'r'),
        'ACL'    => 'public-read',
    ]);
    echo "Image uploaded successfully. Image path is: ". $result->get('ObjectURL');
} catch (AwsS3ExceptionS3Exception $e) {
    echo "There was an error uploading the file.n";
    echo $e->getMessage();
}

Aquí, debe asignar el nombre del depósito para la $bucketNamevariable. En mi caso, estoy cargando un archivo que diga ‘my-image.png’, la ruta que configuré en el código. En consecuencia, debe ajustar la ruta de sus archivos. Finalmente, estoy imprimiendo la ruta de un archivo cargado usando el get()método en la respuesta recibida.

¡Todo listo! Ahora ejecute el upload-to-s3.phparchivo en el navegador y su archivo debería cargarse en el depósito de Amazon S3.

Espero que comprenda cómo crear un depósito y cargar archivos en Amazon S3. También puede consultar los códigos de ejemplo proporcionados por AWS en GitHub.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More