# Storage S3

{% hint style="warning" %}
**Disponível para o perfil: Superadministrador**
{% endhint %}

A página de Storage S3 permite configurar o armazenamento de arquivos e mídias do sistema em provedores de nuvem compatíveis com o protocolo S3. Essa configuração substitui o armazenamento no servidor local, otimizando o espaço em disco e a escalabilidade da aplicação.

#### Principais funções

* Centralização do armazenamento de mídias em serviços de nuvem.
* Suporte a múltiplos provedores (AWS, MinIO, Cloudflare R2, Wasabi, etc.).
* Migração de arquivos locais existentes para a nuvem.
* Gestão de ciclo de vida de arquivos com auto-exclusão.

{% hint style="info" %}

#### Caso de uso

Uma empresa com alto volume de tráfego de imagens e áudios deseja evitar que o disco rígido do servidor principal fique lotado. Ao configurar o Storage S3, todos os arquivos enviados via chat são direcionados automaticamente para um bucket da AWS ou Cloudflare R2.
{% endhint %}

***

#### Como acessar a página

1. No menu lateral, clique em Sistema;
2. Selecione a aba Storage S3.

<figure><img src="/files/q4e1BAtLwbA1co2ms5RK" alt="" width="375"><figcaption></figcaption></figure>

#### Você verá a seguinte tela:

<figure><img src="/files/Ml0HKhJqDUgLNxa6SrT7" alt=""><figcaption></figcaption></figure>

***

#### Explicação dos campos e ícones

Ao clicar em "Nova Configuração", os campos base são:

* Ativo: Chave seletora para habilitar ou desabilitar o uso do storage.
* Configuração Global: Quando ativo, aplica estas credenciais a todos os [Tenants](https://ajuda.zdg.com.br/configuracao-superadmin/tenants-e-licenca/gerenciar-licenca-z-pro) que não possuem configuração própria.
* Credenciais S3: Abas de seleção para definir qual provedor será utilizado (AWS S3, MinIO, Cloudflare R2 ou Personalizado).

<figure><img src="/files/RpsktXFXlVPnGq1anxph" alt="" width="375"><figcaption></figcaption></figure>

***

## Passo a passo de uso

### **Passo 1: Iniciar Nova Configuração**

Clique no botão "+ Nova Configuração" localizado no canto superior direito.

### **Passo 2: Configurar por Provedor**

Selecione a aba desejada e preencha os campos que aparecerão para cada uma:

#### A) Utilizando AWS S3

* Região: Identificador do servidor AWS (ex: `us-east-1`).
* Bucket: Nome do repositório criado na AWS.
* Access Key ID: Chave de acesso do usuário IAM.
* Secret Access Key: Chave secreta de segurança.
* URL Pública Base (opcional): URL customizada ou [CDN](https://ajuda.zdg.com.br/configuracao-superadmin/canais-e-integracoes-superadmin/tenant-api-superadmin).
* Manter cópia local: Opção para não apagar o arquivo do servidor após o upload.
* Habilitar auto-exclusão: Apaga arquivos automaticamente conforme regras de ciclo de vida.

<figure><img src="/files/LmLwvRVXSOE47ZiufIdG" alt="" width="375"><figcaption></figcaption></figure>

#### B) Utilizando MinIO

* Endpoint (opcional): URL do seu servidor MinIO (ex: `http://localhost:9000`).
* Região: Identificador da região (ex: `us-east-1`).
* Bucket: Nome do bucket no MinIO.
* Access Key ID: Usuário de acesso.
* Secret Access Key: Senha de acesso.
* URL Pública Base (opcional): URL para acesso externo aos arquivos.
* Force Path Style: Deve ser ativado para uso com MinIO.
* Manter cópia local: Opção para manter cópia no servidor.
* Habilitar auto-exclusão: Gerenciamento automático de exclusão.

<figure><img src="/files/oLOxXcDdfFaRdxqECes7" alt="" width="375"><figcaption></figcaption></figure>

#### C) Utilizando Cloudflare R2

* Endpoint (opcional): URL do R2 (ex: `https://<ACCOUNT_ID>.r2.cloudflarestorage.com`).
* Região: Identificador da região (ex: `auto`).
* Bucket: Nome do bucket no R2.

```
No painel do R2:
Storage → Buckets
Selecione seu bucket
Settings → CORS Policy
Cole o JSON

[
  {
    "AllowedOrigins": ["https://sud-do-front.dominio.com.br"],
    "AllowedMethods": ["GET", "HEAD"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3000
  }
]
```

* Access Key ID: Chave de acesso gerada no Cloudflare.
* Secret Access Key: Chave secreta gerada no Cloudflare.
* URL Pública Base (opcional): URL de acesso aos arquivos.
* Manter cópia local: Opção para manter cópia no servidor.
* Habilitar auto-exclusão: Gerenciamento automático de exclusão.

<figure><img src="/files/p3GpIinLw2NCbrvdqJqT" alt="" width="375"><figcaption></figcaption></figure>

#### D) Utilizando Personalizado

* Endpoint (opcional): URL do provedor S3 compatível.
* Região: Região do provedor.
* Bucket: Nome do bucket.
* Access Key ID: Chave de acesso.
* Secret Access Key: Chave secreta.
* URL Pública Base (opcional): URL de acesso aos arquivos.
* Force Path Style: Ativar se o provedor exigir este formato de rota.
* Manter cópia local: Opção para manter cópia no servidor.
* Habilitar auto-exclusão: Gerenciamento automático de exclusão.

<figure><img src="/files/XmjLSKsDCLBXg2wXoxgX" alt="" width="375"><figcaption></figcaption></figure>

**Passo 3: Salvar e Testar**

Após preencher os campos, clique em Salvar. Na tela principal de listagem, clique no botão Testar conexão para validar as credenciais.

***

#### Detalhamento

**Migração de Arquivos**

Com o storage configurado, você pode mover as mídias do servidor local para a nuvem através do botão Migrar arquivos locais para S3. O sistema fará o upload em massa e atualizará os caminhos internos.

{% hint style="info" %}
Aviso: Certifique-se de que o bucket no provedor escolhido tenha permissões de leitura pública, caso contrário, as mídias não serão exibidas nos terminais dos clientes.
{% endhint %}

> \[!IMPORTANT]
>
> Aviso: Certifique-se de que o bucket no provedor escolhido tenha permissões de leitura pública, caso contrário, as mídias não serão exibidas nos terminais dos clientes.

***

#### Avisos e precauções

{% hint style="warning" %}
Segurança: As chaves de acesso permitem controle sobre seus arquivos. Nunca exponha a Secret Access Key.

Espaço em Disco: Se a opção Manter cópia local estiver ativada, o sistema continuará consumindo espaço no servidor principal além do consumo na nuvem.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ajuda.zdg.com.br/configuracao-superadmin/sistema/storage-s3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
