> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Provedores Suportados

> Configure provedores de armazenamento em nuvem para o armazenamento de arquivos do AirysChat

# Configurar Armazenamento em Nuvem

O AirysChat usa o [Active Storage](https://edgeguides.rubyonrails.org/active_storage_overview.html) para armazenar anexos. A opção de armazenamento padrão é o armazenamento local no seu servidor, mas você pode configurar provedores de nuvem para melhor escalabilidade e backup.

<Tip>
  É recomendável usar um provedor de nuvem para o armazenamento do seu AirysChat para garantir o backup adequado dos anexos armazenados e evitar a perda de dados.
</Tip>

## Usando Amazon S3

Você pode começar com [Creating an S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) e [Create an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) para configurar os detalhes a seguir.

Configure as seguintes variáveis de ambiente.

```bash theme={null}
ACTIVE_STORAGE_SERVICE=amazon
S3_BUCKET_NAME=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
```

## Usando Google GCS

<Note>
  A partir da versão 2.17+, envolva a variável de ambiente `GCS_CREDENTIALS` em aspas simples.
</Note>

Configure as seguintes variáveis de ambiente.

```bash theme={null}
ACTIVE_STORAGE_SERVICE=google
GCS_PROJECT=
GCS_CREDENTIALS=
GCS_BUCKET=
```

O valor de `GCS_CREDENTIALS` deve ser uma string formatada em json contendo as seguintes chaves.

```bash theme={null}
{
  "type": "service_account",
  "project_id" : "",
  "private_key_id" : "",
  "private_key" : "",
  "client_email" : "",
  "client_id" : "",
  "auth_uri" : "",
  "token_uri" : "",
  "auth_provider_x509_cert_url" : "",
  "client_x509_cert_url" : ""
}
```

Ao colar as credenciais no arquivo ENV, certifique-se de remover as novas linhas e colá-lo em uma única linha.

```bash theme={null}
GCS_CREDENTIALS={"type": "service_account","project_id": "","private_key_id": "","private_key": "","client_email": "","client_id": "","auth_uri": "","token_uri": "","auth_provider_x509_cert_url": "","client_x509_cert_url": ""}
```

## Usando Microsoft Azure

Configure as seguintes variáveis de ambiente.

```bash theme={null}
ACTIVE_STORAGE_SERVICE=microsoft
AZURE_STORAGE_ACCOUNT_NAME=
AZURE_STORAGE_ACCESS_KEY=
AZURE_STORAGE_CONTAINER=
```

## Usando Serviço Compatível com Amazon S3

Para usar um serviço compatível com s3, como [DigitalOcean Spaces](https://www.digitalocean.com/docs/spaces/resources/s3-sdk-examples/#configure-a-client), Minio etc.

Configure as seguintes variáveis de ambiente.

```bash theme={null}
ACTIVE_STORAGE_SERVICE=s3_compatible
STORAGE_BUCKET_NAME=
STORAGE_ACCESS_KEY_ID=
STORAGE_SECRET_ACCESS_KEY=
STORAGE_REGION=nyc3
STORAGE_ENDPOINT=https://nyc3.digitaloceanspaces.com
#set force_path_style to true if using minio
#STORAGE_FORCE_PATH_STYLE=true
```
