Alojamiento de archivos multimedia en S3¶
En lugar de alojar los archivos multimedia del árbol genealógico en el mismo servidor que la base de datos de Gramps, también se pueden alojar en Amazon S3 o en un servicio de almacenamiento de objetos compatible con API diferente. Esto reduce significativamente los requisitos de almacenamiento y tráfico para el servidor web de Gramps.
Preparando credenciales¶
En tu cuenta de AWS (o en otro servicio de almacenamiento de objetos), obtén un ID de clave de acceso y una clave de acceso secreta (puedes querer crear primero un usuario separado con una política de seguridad que permita solo el acceso a S3).
Subir archivos multimedia¶
Para subir tus archivos multimedia existentes a S3, en Linux puedes usar una instalación local de Gramps con el complemento S3 Media Uploader, que puedes instalar directamente desde el escritorio de Gramps. Sin embargo, se necesita una configuración adicional.
El complemento utiliza la biblioteca de Python boto3 en segundo plano. Necesitas instalarla primero con
python3 -m pip install boto3
En la línea de comandos, exporta el ID de clave de acceso y la clave secreta a las variables de entorno apropiadas:
export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key
Ahora, puedes iniciar el cargador ejecutando el siguiente comando,
gramps -O "Mi Árbol Genealógico" -a tool \
-p "name=s3uploader,bucket_name=my_bucket_name"
reemplazando "Mi Árbol Genealógico" con el nombre de tu árbol genealógico y my_bucket_name con el nombre completo de tu bucket de S3. Necesitarás un bucket de S3 dedicado para tu instancia de Gramps Web. Si el bucket aún no existe, el complemento S3 Uploader intentará crearlo.
Configurar Gramps Web¶
Para usar el nuevo bucket de S3 como fuente de medios para Gramps Web, simplemente establece la opción de configuración MEDIA_BASE_DIR opción de configuración a s3://my_bucket_name.
Al usar Docker Compose, la opción más fácil es agregar todas las variables de entorno al bloque env:
env:
AWS_ACCESS_KEY_ID: my_access_key_id
AWS_SECRET_ACCESS_KEY: my_secret_access_key
MEDIA_BASE_DIR: s3://my_bucket_name
AWS_DEFAULT_REGION: eu-central-1
Si deseas usar un almacenamiento de objetos compatible con S3 que no sea AWS (por ejemplo, GCP o para pruebas locales), establece la variable de entorno AWS_ENDPOINT_URL.
Sincronizando archivos multimedia¶
Para mantener los archivos multimedia sincronizados entre una instalación local de Gramps y los archivos multimedia de Gramps Web alojados en S3, el Complemento de Sincronización de Gramps Web admite la sincronización de archivos a través de la API web.