AWS S3 - módulo S3 File System
drupal

Módulo contribuido S3 File System

En este ejemplo usaremos todos los archivos públicos desde S3, usando el módulo S3 File System. Cabe mencionar que también es posible hacer que solo agunos campos específicos se guarden en S3.

Primero debemos mover la carpeta twig fuera de la ubicación habitual (/sites/default/files/php/twig). Esto es por un 2 razones, rendimiento y seguridad. Lo haremos a través del settings.php:

$settings['php_storage']['twig']['directory'] = '../storage/php';

Se debe tener o crear un usuario en la consola de IAM de AWS y darle todos los permisos relacionados a S3, al finalizar se nos proporcionará una Access Key ID y una Secret Access Key debemos guardarlos en un lugar seguro, el secret no será guardado por Amazon por lo que queda en nosotros conservarlo seguro.

Configuración de S3 file system:

  • Crear el bucket en S3 los nombres en S3 son globales no pueden haber 2 iguales.
  • Haremos nuestro bucket público, quitaremos el check de las 2 primeras opciones sobre ACLs, las otras 2 las dejamos, confirmamos que entendemos que nuestros archivos pueden ser públicos.
bucket S3
  • En Drupal instalamos el módulo que ya habremos agregado por medio de composer. Actualizado al 30/11/2023.
composer require 'drupal/s3fs:^3.3'
  • Antes de configurar el módulo hay 2 requerimientos más que deberá cumplir nuestro servidor, en el php.ini debe tener la opción allow_url_fopen = On y debe tener curl instalado (librería php5-curl)
  • En Drupal iremos a /admin/config/media/s3fs y lo dejamos ahí por ahora, luego entramos a el settings.php en el que tenemos que ingresar las siguientes líneas:
# S3FS setting

$settings['s3fs.access_key'] = 'nuestro_access_key';

$settings['s3fs.secret_key'] = 'nuestro_secret_key';

$config['s3fs.settings']['bucket'] = 'nombre_del_bucket'; 

$settings['s3fs.use_s3_for_public'] = TRUE
  • En  /admin/config/media/s3fs llenaremos los valores S3 Bucket name, activamos siempre usar https, si hemos configurado bien el settings.php las opciones Use S3 for public:// files y/o Use S3 for private:// files ya estarán marcadas, en root folder lo dejamos en blanco al menos que hayamos creado otra carpeta dentro de nuestro bucket que sera la raiz, en additional folder settings pondremos s3fs-public en Public Folder y s3fs-private en Private folder de esta manera el módulo identificara a nuestras carpetas public y private (en teoria podria ser cualquier nombre de carpeta que podríamos crear pero al parecer el módulo tiene problemas cuando no se llaman así) grabamos la configuración.
  • Vamos a /admin/config/media/file-system  y escogemos Amazon Simple Storage, grabamos.
  • Vamos a la otra pestaña “actions” y clicamos en validar si nuestra configuración es correcta nos debe dar un mensaje satisfactorio, luego clicamos en refresh File Metadata Cache. Esto es para sincronizar nuestros archivos de S3 con nuestra base de datos, si tuviéramos archivos creados en nuestro bucket.
  • Luego verificamos la creación de las que se ubican dentro de /files en nuestro bucket
  • Esa sería toda la configuracion del modulo S3 file System.

 

Me pareció interesante el artículo

Deseo más información

O también puedes comunicarte con nosotros.

por whatsapp por whatsapp

Añadir nuevo comentario

Me gustaría más información sobre:

CAPTCHA