GG.chatbot
Guias

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.

  1. 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.

  2. Abra seu terminal — o Terminal no macOS ou o Prompt de Comando no Windows, por exemplo.

  3. 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"]
        }
      ]
    }
  4. 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:

  1. Instale e configure a AWS CLI na sua máquina, se ainda não tiver feito. Consulte a documentação oficial para instruções.

  2. Abra seu terminal (Terminal no macOS ou Prompt de Comando no Windows).

  3. 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/*"
    }
  ]
}
  1. Substitua <bucket-name> pelo nome do seu bucket.

  2. 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.

On this page