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

# Credenciais S3 Blob

> Obtenha o par de chaves de acesso S3 da sua chave de API com GET /v1/s3/credentials, para usar aws-cli, boto3, rclone e os AWS SDKs com o Blob Storage.

<ParamField header="Authorization" type="string" placeholder="Chave da API" required>
  A chave da API para sua conta. Você pode encontrá-la nas [configurações da conta](https://squarecloud.app/pt-br/account/security).
</ParamField>

O Credenciais S3 retorna o par de chaves de acesso que as ferramentas S3 usam para assinar as requisições ao [gateway S3](/pt-br/blob-reference/s3-compatibility). O par é **derivado da chave de API** que chama esta rota: chamar de novo retorna o mesmo par, e revogar, regenerar ou deixar a chave expirar faz o mesmo com o par. Não há mais nada para rotacionar ou revogar.

Chame-a com uma chave de API que tenha `blob:read` ou `blob:write`. O par pode ler com `blob:read` e gravar com `blob:write`, como mostra o campo `access`.

<Warning>A `secret_access_key` dá o mesmo acesso que a chave de API. Guarde-a como a própria chave.</Warning>

<Tip>O par não muda enquanto a chave de API não mudar. Busque-o uma vez e guarde-o no seu gerenciador de segredos ou em uma variável de ambiente: não chame esta rota toda vez que a sua aplicação iniciar.</Tip>

### Limites de taxa

<Note>10 requisições por hora por conta (`RATE_LIMITED`, 429).</Note>

### Resposta

<ResponseField name="status" type="string">
  "success" se bem-sucedida, "error" caso contrário.
</ResponseField>

<ResponseField name="response" type="object">
  <Expandable title="Alternar objeto">
    <ResponseField name="access_key_id" type="string">
      O id da chave de acesso (`SQ2_...`).
    </ResponseField>

    <ResponseField name="secret_access_key" type="string">
      A chave de acesso secreta.
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      `https://s3-blob.squarecloud.app`
    </ResponseField>

    <ResponseField name="region" type="string">
      `auto`
    </ResponseField>

    <ResponseField name="buckets" type="string[]">
      Os buckets da sua conta: `public`, `private` e `legacy`.
    </ResponseField>

    <ResponseField name="access" type="object">
      `read` e `write`, cada um `true` ou `false`, conforme os escopos da chave.
    </ResponseField>

    <ResponseField name="expires_at" type="ISO 8601 | null">
      Quando a chave de API, e portanto o par, expira. `null` quando não expira.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://blob.squarecloud.app/v1/s3/credentials' \
    --header 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "access_key_id": "SQ2_3155597145698959364_k7Hq2mX9",
      "secret_access_key": "vR8nLq2Wz5Tc1Yb7Hs0Kd4Jf6Gm3Pa9Xe",
      "endpoint": "https://s3-blob.squarecloud.app",
      "region": "auto",
      "buckets": ["public", "private", "legacy"],
      "access": { "read": true, "write": true },
      "expires_at": null
    }
  }
  ```
</ResponseExample>

### Erros

| Código               | HTTP | Quando                                                                                             |
| -------------------- | ---- | -------------------------------------------------------------------------------------------------- |
| `API_KEY_REQUIRED`   | 400  | Chamada com uma sessão do dashboard. Use uma chave de API.                                         |
| `LEGACY_API_KEY`     | 400  | A chave usa um formato antigo que não consegue assinar requisições S3. Crie uma nova chave de API. |
| `INVALID_CREDENTIAL` | 401  | A chave de API não pôde ser verificada.                                                            |
| `MISSING_SCOPE`      | 403  | A chave não tem `blob:read` nem `blob:write`.                                                      |
| `RATE_LIMITED`       | 429  | Mais de 10 requisições em uma hora.                                                                |
