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

# Blob S3 Credentials

> Ottieni la coppia di chiavi di accesso S3 della tua chiave API con GET /v1/s3/credentials, per usare aws-cli, boto3, rclone e gli SDK AWS con Blob Storage.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La chiave API del tuo account. Puoi trovarla nelle [impostazioni del tuo account](https://squarecloud.app/it/account/security).
</ParamField>

S3 Credentials restituisce la coppia di chiavi di accesso che gli strumenti S3 usano per firmare le richieste al [gateway S3](/it/blob-reference/s3-compatibility). La coppia è **derivata dalla chiave API** che chiama questa route: chiamarla di nuovo restituisce la stessa coppia, e revocare, rigenerare o far scadere la chiave ha lo stesso effetto sulla coppia. Non c'è nient'altro da ruotare o revocare.

Chiamala con una chiave API che abbia `blob:read` o `blob:write`. La coppia può leggere con `blob:read` e scrivere con `blob:write`, come indica il campo `access`.

<Warning>La `secret_access_key` dà lo stesso accesso della chiave API. Conservala come la chiave stessa.</Warning>

<Tip>La coppia non cambia finché non cambia la chiave API. Recuperala una volta e conservala nel tuo secret manager o in una variabile d'ambiente: non chiamare questa route a ogni avvio della tua applicazione.</Tip>

### Limiti di frequenza

<Note>10 richieste all'ora per account (`RATE_LIMITED`, 429).</Note>

### Risposta

<ResponseField name="status" type="string">
  "success" in caso di successo, "error" in caso contrario.
</ResponseField>

<ResponseField name="response" type="object">
  <Expandable title="Mostra oggetto">
    <ResponseField name="access_key_id" type="string">
      L'id della chiave di accesso (`SQ2_...`).
    </ResponseField>

    <ResponseField name="secret_access_key" type="string">
      La chiave di accesso segreta.
    </ResponseField>

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

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

    <ResponseField name="buckets" type="string[]">
      I bucket del tuo account: `public`, `private` e `legacy`.
    </ResponseField>

    <ResponseField name="access" type="object">
      `read` e `write`, ciascuno `true` o `false`, in base agli scope della chiave.
    </ResponseField>

    <ResponseField name="expires_at" type="ISO 8601 | null">
      Quando scade la chiave API, e quindi la coppia. `null` se non scade.
    </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>

### Errori

| Codice               | HTTP | Quando                                                                                           |
| -------------------- | ---- | ------------------------------------------------------------------------------------------------ |
| `API_KEY_REQUIRED`   | 400  | Chiamata con una sessione della dashboard. Usa una chiave API.                                   |
| `LEGACY_API_KEY`     | 400  | La chiave usa un formato precedente che non può firmare richieste S3. Crea una nuova chiave API. |
| `INVALID_CREDENTIAL` | 401  | Non è stato possibile verificare la chiave API.                                                  |
| `MISSING_SCOPE`      | 403  | La chiave non ha né `blob:read` né `blob:write`.                                                 |
| `RATE_LIMITED`       | 429  | Più di 10 richieste in un'ora.                                                                   |
