# Acesse o Object Storage com o protocolo S3

O **Object Storage** da Azion oferece compatibilidade com o protocolo S3 por meio de credenciais. Quando você cria uma credencial para qualquer bucket que você possui, você receberá uma chave de acesso e uma chave secreta para configurar permissões para operações. O acesso ao seu bucket por meio do protocolo S3 será verificado usando a credencial.

O protocolo S3 permite que você acesse buckets e objetos usando uma URL do Object Storage. Essa configuração facilita operações com arquivos por meio de ferramentas de interface de linha de comando (CLI), como [s3cmd](https://s3tools.org/s3cmd), serviços de banco de dados ou funções.

---

## Crie uma credencial via API

1. Execute a seguinte requisição `POST` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/):

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/storage/credentials \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "full-access",
      "capabilities": [
        "listAllBucketNames",
        "listBuckets",
        "listFiles",
        "readFiles",
        "writeFiles",
        "deleteFiles"
      ]
}'
```

  | Chave | Descrição |
  | --- | --- |
  | `name` | Define um valor de tipo string como o nome da credencial |
  | `capabilities` | Aceita uma lista de funcionalidades para permitir a execução de operações |
  | `bucket` | Opcional. Restringe o uso da credencial somente ao bucket especificado |
  | `expiration_date` | Define o tempo de expiração da credencial. O formato deve ser no padrão: `YYYY-MM-DDT00:00:00Z` |

2. Você deve receber uma resposta semelhante a esta:

```json
{
  "state": "executed",
  "data": {
    "name": "full-access",
    "access_key": "<s3_credential_access_key>",
    "secret_key":  "<s3_credential_secret_key>", // this value can no longer be accessed in future requests
    ,
    "capabilities": [
      "listAllBucketNames",
      "listBuckets",
      "listFiles",
      "readFiles",
      "writeFiles",
      "deleteFiles"
    ],
    "bucket": null,
    "expiration_date": null,
    "last_editor": "gabriel.bullit@gmail.com",
    "last_modified": "2025-11-05T19:55:31.542240Z"
  }
}
```

:::note
O campo bucket é opcional. Caso não seja informado e a credencial possua as capacidades listAllBucketNames e listBuckets, ela poderá ser utilizada para acessar todos os buckets da conta. No entanto, se o campo bucket for especificado, o acesso será restrito apenas ao bucket indicado.
:::

3. Copie os valores de `access_key` e `secret_key` para configurar o acesso através do protocolo S3.

---

## Configure o acesso ao bucket através do s3cmd

[S3cmd](https://s3tools.org/s3cmd) é uma ferramenta de interface de linha de comando (CLI) para gerenciar o S3 e outros serviços de armazenamento em nuvem. Ele pode ser usada para gerenciar objetos no **Object Storage** e outros serviços de armazenamento compatíveis com o S3. 

Para usar o s3cmd para gerenciar seu bucket do Object Storage, siga estes passos:

1. Baixe e instale o pacote s3cmd através do [site oficial](https://s3tools.org/download).
2. Certifique-se de que `s3cmd` está adicionado ao PATH do seu sistema.
3. Execute `s3cmd --configure` e insira a `access_key` e a `secret_key`.
4. Insira a região padrão para a região do Object Storage: `us-east-005`.
5. Insira a URL do endpoint para o Object Storage: `s3.us-east-005.azionstorage.net`.
6. Use o template DNS padrão: `%(bucket).s3.us-east-005.azionstorage.net`.
7. Informe uma senha de criptografia e um caminho para o programa GPG se necessário.

:::note
O Gnu Privacy Guard (GPG) é um software de criptografia gratuito e de código aberto que fornece uma camada adicional de privacidade criptográfica e autenticação para a comunicação do protocolo S3. Consulte [a documentação do GnuPG](https://www.gnupg.org/index.html) para mais informações.
:::

8. Ative o protocolo HTTPS digitando `true`.
9. Informe servidores proxy HTTP se necessário.
10. Pressione `y` para testar o acesso.

Se suas chaves de acesso e secretas estiverem corretas, você deve receber a seguinte mensagem de sucesso:

```bash
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
```

Você pode salvar suas configurações em um arquivo `.s3cfg` se necessário e modificá-las novamente usando `s3cmd --configure`. Execute o comando `s3cmd --help` para ver todos os comandos disponíveis.

---

## Comandos s3cmd para gerenciar objetos no Object Storage

Depois de ter configurado o acesso ao bucket através do s3cmd, você pode executar operações para gerenciar seus objetos no Object Storage usando os comandos disponíveis.

| Escopo | Descrição | 
|---|---|
| `s3cmd ls` | Liste todos os seus buckets |
| `s3cmd mb s3://nome-do-novo-bucket` | Crie um novo bucket. Os nomes dos buckets devem ser únicos e as melhores práticas para nomear buckets incluem especificar quais tipos de objetos são armazenados e quais são os tipos de permissões para os objetos |
| `s3cmd ls s3://nome-do-novo-bucket` | Liste o conteúdo do bucket |
| `s3cmd put file.xml s3://nome-do-novo-bucket/file.xml` | Faça o upload de um arquivo para o bucket |
| `s3cmd get s3://nome-do-novo-bucket/file.xml file-2.xml` | Recupere o arquivo novamente e verifique se não foi corrompido |
| `s3cmd del s3://nome-do-novo-bucket/addrbook.xml s3://nome-do-novo-bucket/storage.jpg` | Exclua o objeto |
| `s3cmd rb s3://logix.cz-test` | Remova o bucket. Apenas buckets vazios podem ser removidos |

:::note
Se quaisquer arquivos houverem sido excluídos nas últimas 24 horas do bucket especificado, a tentativa de exclusão do bucket será bloqueada. É recomendável esperar pelo menos 24 horas após excluir arquivos antes de tentar excluir todo o bucket.
:::

Para mais detalhes sobre o protocolo S3 e comandos s3cmd, consulte a [documentação oficial](https://s3tools.org/s3cmd). Você também pode visitar a [referência do Object Storage](/pt-br/documentacao/produtos/store/object-storage/).