> ## 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 Update Settings

> Imposta regole per prefisso con PUT /v1/account/settings: visibilità, scadenza e cache predefinite, limiti di dimensione e tipo di file, ed eliminazione automatica dopo N giorni.

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

Update Settings salva le tue regole, ciascuna applicata ai file sotto un prefisso. Una regola imposta valori predefiniti e limiti una volta sola, per ogni upload sotto di essa, che provenga dal tuo backend, da un [upload token](/it/blob-reference/endpoint/upload-tokens) o dalla dashboard. Richiede lo scope `blob:write` e un piano a pagamento.

Ogni piano consente un certo numero di regole: **5** su Hobby e Standard, **10** su Pro e **20** su Enterprise. Le regole salvate prima di un downgrade continuano ad applicarsi, ma il salvataggio successivo deve rientrare nel nuovo piano.

La richiesta **sostituisce l'intero elenco**: invia tutte le regole che vuoi mantenere, e `{"rules": []}` le rimuove tutte. Quando più regole corrispondono a un file, vince quella con il **prefisso più lungo**.

* I **valori predefiniti** (`private`, `expire`, `cache_control`) si applicano quando l'upload non imposta un proprio valore.
* I **limiti** (`max_size`, `extensions`) rifiutano gli upload che non li rispettano con `FILE_TOO_LARGE` o `FILE_TYPE_NOT_ALLOWED`. Si applicano agli upload REST, non al [gateway S3](/it/blob-reference/s3-compatibility).
* L'**eliminazione automatica** (`delete_after_days`) elimina i file un certo numero di giorni dopo la loro scrittura. Si applica a ogni file sotto il prefisso, compresi i file già esistenti e quelli scritti tramite S3.

<Warning>
  L'eliminazione automatica inizia solo **24 ore dopo il salvataggio della regola** (`active_from` in [Get Settings](/it/blob-reference/endpoint/settings-get)), così hai un giorno per accorgerti di un prefisso più ampio del previsto. Salvare di nuovo una regola invariata mantiene la sua data originale. Una volta attiva, i file eliminati non possono essere recuperati.
</Warning>

<ParamField body="rules" type="object[]" required>
  Fino a 5 regole su Hobby e Standard, 10 su Pro e 20 su Enterprise.

  <Expandable title="proprietà">
    <ParamField body="prefix" type="string" required>
      Il prefisso, stesso pattern di [Object Post](/it/blob-reference/endpoint/post). Salvato con una `/` finale, quindi `invoices` copre `invoices/...` e non `invoices-old/...`.
    </ParamField>

    <ParamField body="private" type="boolean">
      Visibilità predefinita dei nuovi file.
    </ParamField>

    <ParamField body="expire" type="string">
      Scadenza predefinita dei nuovi file (`30d`, `6h`). Sotto i 7 giorni richiede Enterprise.
    </ParamField>

    <ParamField body="max_size" type="number">
      Dimensione massima del file in byte, da 512 a 10737418240 (10 GiB).
    </ParamField>

    <ParamField body="extensions" type="string[]">
      Estensioni accettate, da 1 a 50, in minuscolo e senza il punto (`pdf`, `tar.gz`).
    </ParamField>

    <ParamField body="cache_control" type="string">
      Cache predefinita: `immutable`, `max-age=N` oppure `no-cache` (solo Enterprise).
    </ParamField>

    <ParamField body="delete_after_days" type="number">
      Elimina i file questo numero di giorni dopo la loro scrittura, da 1 a 3650. Sotto i 7 richiede Enterprise.
    </ParamField>
  </Expandable>
</ParamField>

<Note>Se il piano cambia con uno che non include un'opzione di una regola (ad esempio una scadenza sotto i 7 giorni dopo aver lasciato Enterprise), gli upload sotto quel prefisso vengono rifiutati con `UPGRADE_REQUIRED` finché la regola non viene modificata.</Note>

### Limiti di frequenza

<Note>10 richieste al minuto (`RATE_LIMITED`, 429).</Note>

### Risposta

Restituisce le regole salvate, con la stessa forma di [Get Settings](/it/blob-reference/endpoint/settings-get).

<RequestExample>
  ```bash cURL theme={null}
  curl --request PUT \
    --url 'https://blob.squarecloud.app/v1/account/settings' \
    --header 'Authorization: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "rules": [
        { "prefix": "invoices", "private": true, "extensions": ["pdf"] },
        { "prefix": "avatars", "max_size": 2097152, "extensions": ["png", "jpg", "webp"], "cache_control": "max-age=86400" },
        { "prefix": "tmp", "delete_after_days": 7 }
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "rules": [
        { "prefix": "invoices/", "private": true, "extensions": ["pdf"], "created_at": "2026-09-25T12:00:00.000Z" },
        { "prefix": "avatars/", "max_size": 2097152, "extensions": ["png", "jpg", "webp"], "cache_control": "max-age=86400", "created_at": "2026-09-25T12:00:00.000Z" },
        { "prefix": "tmp/", "delete_after_days": 7, "created_at": "2026-09-25T12:00:00.000Z", "active_from": "2026-09-26T12:00:00.000Z" }
      ]
    }
  }
  ```
</ResponseExample>

### Errori

Gli errori relativi a una regola includono il suo `prefix` nella risposta.

| Codice                                                                                                                                                            | HTTP | Quando                                                                                                                                                 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `INVALID_BODY`                                                                                                                                                    | 400  | Il corpo non è un oggetto JSON.                                                                                                                        |
| `NOTHING_TO_UPDATE`                                                                                                                                               | 400  | Il corpo non contiene `rules`.                                                                                                                         |
| `INVALID_RULES`                                                                                                                                                   | 400  | `rules` non è un array di oggetti.                                                                                                                     |
| `TOO_MANY_RULES`                                                                                                                                                  | 400  | Più di 20 regole su Enterprise.                                                                                                                        |
| `INVALID_RULE_PREFIX` / `DUPLICATE_RULE_PREFIX`                                                                                                                   | 400  | Un prefisso è malformato o ripetuto.                                                                                                                   |
| `INVALID_RULE_PRIVATE` / `INVALID_RULE_EXPIRE` / `INVALID_RULE_MAX_SIZE` / `INVALID_RULE_EXTENSIONS` / `INVALID_RULE_CACHE_CONTROL` / `INVALID_RULE_DELETE_AFTER` | 400  | Un campo di una regola non è valido.                                                                                                                   |
| `PERMISSION_DENIED`                                                                                                                                               | 401  | L'account non ha un piano a pagamento attivo.                                                                                                          |
| `UPGRADE_REQUIRED`                                                                                                                                                | 403  | Più regole di quante ne consenta il piano, oppure una regola usa un'opzione che richiede un piano superiore. Il `message` indica il limite o il piano. |
| `RATE_LIMITED`                                                                                                                                                    | 429  | Più di 10 richieste in un minuto.                                                                                                                      |
