Configuração do S3
Para que o GG.chatbot guarde os arquivos enviados, você precisa configurar um bucket S3.
Pode ser qualquer provedor de armazenamento compatível com S3. Alguns exemplos:
Se você hospeda com Docker, siga as instruções específicas para Docker e execute um servidor de armazenamento compatível com S3 localmente.
Para funcionar corretamente, seu bucket precisa ter a seguinte configuração:
-
Política de CORS:
{ "CORSRules": [ { "AllowedHeaders": ["*"], "AllowedMethods": ["PUT"], "AllowedOrigins": ["*"], "ExposeHeaders": ["ETag"] } ] }
Se você estiver usando o console da Amazon pela web, cole assim:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["PUT"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"]
}
]- Política de acesso (substitua
<bucket-name>pelo nome do seu bucket):{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicRead", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<bucket-name>/public/*" } ] }
Como configurar a política de CORS?
Alguns provedores, como a AWS, oferecem uma interface onde você digita a política do bucket diretamente. Outros não têm essa interface — nesse caso, configure pela linha de comando.
-
Certifique-se de ter a AWS CLI instalada e configurada na sua máquina. Se ainda não tiver, consulte a documentação oficial da AWS CLI para instalação e configuração.
-
Abra seu terminal — o Terminal no macOS ou o Prompt de Comando no Windows, por exemplo.
-
Crie um arquivo JSON (por exemplo, cors-policy.json) com a política de CORS desejada. Veja um exemplo que permite requisições de qualquer origem (*):
{ "CORSRules": [ { "AllowedHeaders": ["*"], "AllowedMethods": ["PUT"], "AllowedOrigins": ["*"], "ExposeHeaders": ["ETag"] } ] } -
Execute o comando abaixo, substituindo
<bucket-name>pelo nome do seu bucket e<path-to-policy>pelo caminho do arquivo JSON:aws s3api put-bucket-cors --bucket <bucket-name> --cors-configuration file://<path-to-policy>Quando o comando é executado com sucesso, a AWS responde com a representação JSON da configuração de CORS. Isso indica que a política foi aplicada ao seu bucket.
Observação: você precisa ter as credenciais e permissões adequadas na AWS para executar essa ação.
Como configurar a política de acesso?
Alguns provedores, como a AWS, oferecem uma interface para digitar a política do bucket diretamente. Outros, como a DigitalOcean, não oferecem. Nesse caso, configure pela linha de comando.
Para definir a política de um bucket S3 pelo terminal, use a AWS CLI. Veja o passo a passo:
-
Instale e configure a AWS CLI na sua máquina, se ainda não tiver feito. Consulte a documentação oficial para instruções.
-
Abra seu terminal (Terminal no macOS ou Prompt de Comando no Windows).
-
Para definir uma política, você precisa do documento em formato JSON. Crie um arquivo (por exemplo, bucket-policy.json) com a política desejada. Veja um exemplo que permite leitura pública de todos os objetos do bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket-name>/public/*"
}
]
}-
Substitua
<bucket-name>pelo nome do seu bucket. -
Execute o comando abaixo, substituindo
<bucket-name>pelo nome do seu bucket e<path-to-policy>pelo caminho do documento JSON:aws s3api put-bucket-policy --bucket <bucket-name> --policy file://<path-to-policy>Após a execução, a AWS responde com a representação JSON da política, se a operação for bem-sucedida. A resposta confirma que a política foi adicionada ao bucket.