Hospedando arquivos de mídia no S3¶
Em vez de hospedar os arquivos de mídia da árvore genealógica no mesmo servidor que o banco de dados Gramps, eles também podem ser hospedados no Amazon S3 ou em um serviço de armazenamento de objetos compatível com API diferente. Isso reduz fortemente os requisitos de armazenamento e tráfego para o servidor Web do Gramps.
Preparando credenciais¶
Na sua conta AWS (ou em outro serviço de armazenamento de objetos), obtenha um ID de chave de acesso e uma chave de acesso secreta (você pode querer primeiro criar um usuário separado com uma política de segurança que permita apenas o acesso ao S3).
Fazer upload de arquivos de mídia¶
Para fazer upload dos seus arquivos de mídia existentes para o S3, no Linux você pode usar uma instalação local do Gramps com o Addon S3 Media Uploader, que pode ser instalado diretamente do desktop do Gramps. No entanto, alguma configuração adicional é necessária.
O addon utiliza a biblioteca Python boto3 por trás dos panos. Você precisa instalá-la primeiro com
python3 -m pip install boto3
Na linha de comando, exporte o ID da chave de acesso e a chave secreta para as variáveis de ambiente apropriadas:
export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key
Agora, você pode iniciar o uploader executando o seguinte comando,
gramps -O "Minha Árvore Genealógica" -a tool \
-p "name=s3uploader,bucket_name=my_bucket_name"
substituindo "Minha Árvore Genealógica" pelo nome da sua árvore genealógica e my_bucket_name pelo nome completo do seu bucket S3. Você precisará de um bucket S3 dedicado para sua instância do Gramps Web. Se o bucket ainda não existir, o Addon S3 Uploader tentará criá-lo.
Configurar Gramps Web¶
Para usar o novo bucket S3 como fonte de mídia para o Gramps Web, basta definir a opção de configuração MEDIA_BASE_DIR opção de configuração para s3://my_bucket_name.
Ao usar Docker Compose, a opção mais fácil é adicionar todas as variáveis de ambiente ao bloco 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
Se você quiser usar um armazenamento de objetos compatível com S3 que não seja AWS (por exemplo, GCP ou para testes locais), defina a variável de ambiente AWS_ENDPOINT_URL.
Sincronizando arquivos de mídia¶
Para manter os arquivos de mídia sincronizados entre uma instalação local do Gramps e os arquivos de mídia hospedados no Gramps Web no S3, o Addon Gramps Web Sync suporta a sincronização de arquivos via API Web.