Cómo subir un archivo a Amazon S3 desde PHP

Cómo subir un archivo a Amazon S3 desde PHP

Hoy hablaremos sobre cómo subir un archivo a Amazon s3 desde PHP con la ayuda de la librería oficial de AWS, veremos la conexión con clave y secreto además de ver cómo subir un objeto y eliminarlo también desde PHP.

AWS nos ofrece herramientas geniales para el desarrollo de proyectos.

El día de hoy nos toca conectarnos con el tema del almacenamiento.

Amazon S3 (Simple Storage Service) es una excelente opción para almacenamiento de proyectos importantes.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

Grandes proyectos en Internet se apoyan en S3 para el cumplimiento del almacenamiento, proporcionando seguridad y velocidad de acceso a su información.

En este artículo veremos cómo conectarnos a S3 desde PHP con la ayuda de la clave y secreto que debes haber generado previamente.

Este texto también asume que has creado un Bucket o contenedor en Amazon, a este contenedor subiremos un archivo u objeto más tarde.

Instalando AWS SDK para PHP

Lo primero será descargar la librería oficial o SDK de AWS para PHP.

Podemos instalarla de varias formas tal y como lo vemos en su repositorio oficial:

https://github.com/aws/aws-sdk-php

Nosotros lo haremos vía composer:

composer require aws/aws-sdk-php

Ahora podemos comenzar escribir código.

Conectar a AWS S3 desde PHP

Lo primero será llamar al autoload de composer:

require 'vendor/autoload.php';

Y también algunos namespaces:

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

Después creamos un objeto de opciones que utilizaremos para crear nuestro cliente de conexión:

$options = [
      'region' => 'us-east-2',
      'version' => '2006-03-01',
      'credentials' => [
            'key' => '[TU KEY]',
            'secret' => '[TU SECRET]'
      ]
];

Aquí debemos poner nuestro key y secret, además de revisar la región de nuestro contenedor o Bucket.

Esta información debemos obtenerla de nuestra cuenta de Amazon S3, tanto las credenciales como la región del Bucket que debimos haber creado hasta este punto.

Aquí cabe señalar que existen varias formas de conectarnos a Amazon, por variables de entorno, por un archivo de credenciales, etc. Nosotros lo haremos de esta manera.

Ahora ya podremos tener una sesión de cliente:

$s3Client = new S3Client($options);

Ahora vamos a ver que más podemos hacer.

¿Te puede interesar, subir archivo a un servidor vía FTP en Java?

Subir un archivo a S3 desde PHP

En Amazon S3 un archivo es un objeto.

Vamos a ver cómo subir un archivo u objeto a S3 desde PHP con la conexión que hemos creado:

$result = $s3Client->putObject([
            'Bucket' => '[nombre de tu bucket o contenedor]',
            'Key' => '[ruta a donde se subirá incluido su nombre de archivo]', // documentos/nombredeachivo.pdf
            'Tagging' => 'public=yes', // Etiqueta
            'StorageClass' => 'STANDARD_IA', // Infrequent Access
            'SourceFile' => $file // Un archivo a subir
      ]);

A tomar en cuenta que hemos señalado que queremos que nuestro archivo subido se valga de las reglas de almacenamiento Infrequent Access.

También notarás que hemos asignado una etiqueta a este archivo, esto lo hacemos para varias cosas, en mi caso para usarlo posteriormente con una política y hacerlo público.

Solo tienes que cambiar el valor de tu contenedor, el key y el archivo a subir.

Puedes imprimir $result para ver lo que nos arroja a subir un objeto.

Eliminar un archivo de S3 desde PHP

Para eliminar un archivo u objeto previamente subido vamos utilizar el siguiente código:

$result = $s3Client->deleteObject([
            'Bucket' => '[tu bucket o contenedor]',
            'Key' => '[ruta donde esta tu archivo]',
      ]);

Como puedes ver es un poco más fácil.

Únicamente debes señalar el Bucket o contenedor donde se encuentra tu archivo y la key con la cual encontrarlo.

Igualmente, puedes imprimir el resultado para manejar los procesos de tu proyecto.

¿Quieres más tutoriales de S3? Dejanos tu comentario sobre que temas te gustaría tratar para verlos en próximos artículos.

Si esta información sobre cómo subir un archivo a Amazon S3 desde PHP te ha sido de utilidad, no olvides compartirla en tus redes sociales favoritas y dejarnos un comentario en la sección de abajo, si tienes cualquier duda con respecto a este tema, será un placer ayudarte.

¡Hasta luego!

Clic para valorar esta información
[Total: 2 Promedio: 5]