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

> Définissez des règles par préfixe avec PUT /v1/account/settings : visibilité, expiration et cache par défaut, limites de taille et de type de fichier, et suppression automatique après N jours.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clé d'API de votre compte. Vous pouvez la trouver dans les [paramètres de votre compte](https://squarecloud.app/fr/account/security).
</ParamField>

Update Settings enregistre vos règles, chacune s'appliquant aux fichiers situés sous un préfixe. Une règle définit une fois pour toutes des valeurs par défaut et des limites pour chaque envoi sous ce préfixe, qu'il provienne de votre backend, d'un [jeton d'envoi](/fr/blob-reference/endpoint/upload-tokens) ou du tableau de bord. Nécessite le scope `blob:write` et un plan payant.

Chaque plan autorise un certain nombre de règles : **5** sur Hobby et Standard, **10** sur Pro et **20** sur Enterprise. Les règles enregistrées avant un passage à un plan inférieur continuent de s'appliquer, mais le prochain enregistrement doit respecter le nouveau plan.

La requête **remplace la liste entière** : envoyez chaque règle que vous souhaitez conserver, et `{"rules": []}` les supprime toutes. Lorsque plusieurs règles correspondent à un fichier, celle dont le **préfixe est le plus long** l'emporte.

* Les **valeurs par défaut** (`private`, `expire`, `cache_control`) s'appliquent lorsque l'envoi ne définit pas sa propre valeur.
* Les **limites** (`max_size`, `extensions`) refusent les envois qui ne les respectent pas avec `FILE_TOO_LARGE` ou `FILE_TYPE_NOT_ALLOWED`. Elles s'appliquent aux envois REST, pas à la [passerelle S3](/fr/blob-reference/s3-compatibility).
* La **suppression automatique** (`delete_after_days`) supprime les fichiers un certain nombre de jours après leur écriture. Elle s'applique à chaque fichier sous le préfixe, y compris les fichiers qui existaient déjà et ceux écrits via S3.

<Warning>
  La suppression automatique ne commence que **24 heures après l'enregistrement de la règle** (`active_from` dans [Lire les paramètres](/fr/blob-reference/endpoint/settings-get)), vous avez donc une journée pour repérer un préfixe plus large que prévu. Enregistrer à nouveau une règle inchangée conserve sa date d'origine. Une fois active, les fichiers supprimés ne peuvent pas être récupérés.
</Warning>

<ParamField body="rules" type="object[]" required>
  Jusqu'à 5 règles sur Hobby et Standard, 10 sur Pro et 20 sur Enterprise.

  <Expandable title="propriétés">
    <ParamField body="prefix" type="string" required>
      Le préfixe, même motif que dans [Object Post](/fr/blob-reference/endpoint/post). Enregistré avec un `/` final, de sorte que `invoices` couvre `invoices/...` et pas `invoices-old/...`.
    </ParamField>

    <ParamField body="private" type="boolean">
      Visibilité par défaut des nouveaux fichiers.
    </ParamField>

    <ParamField body="expire" type="string">
      Expiration par défaut des nouveaux fichiers (`30d`, `6h`). En dessous de 7 jours, nécessite Enterprise.
    </ParamField>

    <ParamField body="max_size" type="number">
      Taille maximale de fichier en octets, de 512 à 10737418240 (10 GiB).
    </ParamField>

    <ParamField body="extensions" type="string[]">
      Extensions acceptées, de 1 à 50, en minuscules et sans le point (`pdf`, `tar.gz`).
    </ParamField>

    <ParamField body="cache_control" type="string">
      Cache par défaut : `immutable`, `max-age=N` ou `no-cache` (Enterprise uniquement).
    </ParamField>

    <ParamField body="delete_after_days" type="number">
      Supprime les fichiers ce nombre de jours après leur écriture, de 1 à 3650. En dessous de 7, nécessite Enterprise.
    </ParamField>
  </Expandable>
</ParamField>

<Note>Si le plan passe à un plan qui n'inclut pas une option de la règle (par exemple une expiration inférieure à 7 jours après avoir quitté Enterprise), les envois sous ce préfixe sont refusés avec `UPGRADE_REQUIRED` jusqu'à ce que la règle soit modifiée.</Note>

### Limites de débit

<Note>10 requêtes par minute (`RATE_LIMITED`, 429).</Note>

### Réponse

Renvoie les règles enregistrées, sous la même forme que [Lire les paramètres](/fr/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>

### Erreurs

Les erreurs concernant une règle incluent son `prefix` dans la réponse.

| Code                                                                                                                                                              | HTTP | Quand                                                                                                                                                 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `INVALID_BODY`                                                                                                                                                    | 400  | Le corps n'est pas un objet JSON.                                                                                                                     |
| `NOTHING_TO_UPDATE`                                                                                                                                               | 400  | Le corps ne contient pas `rules`.                                                                                                                     |
| `INVALID_RULES`                                                                                                                                                   | 400  | `rules` n'est pas un tableau d'objets.                                                                                                                |
| `TOO_MANY_RULES`                                                                                                                                                  | 400  | Plus de 20 règles sur Enterprise.                                                                                                                     |
| `INVALID_RULE_PREFIX` / `DUPLICATE_RULE_PREFIX`                                                                                                                   | 400  | Un préfixe est mal formé ou répété.                                                                                                                   |
| `INVALID_RULE_PRIVATE` / `INVALID_RULE_EXPIRE` / `INVALID_RULE_MAX_SIZE` / `INVALID_RULE_EXTENSIONS` / `INVALID_RULE_CACHE_CONTROL` / `INVALID_RULE_DELETE_AFTER` | 400  | Un champ d'une règle est invalide.                                                                                                                    |
| `PERMISSION_DENIED`                                                                                                                                               | 401  | Le compte n'a pas de plan payant actif.                                                                                                               |
| `UPGRADE_REQUIRED`                                                                                                                                                | 403  | Plus de règles que le plan n'en autorise, ou une règle utilise une option qui nécessite un plan supérieur. Le `message` indique la limite ou le plan. |
| `RATE_LIMITED`                                                                                                                                                    | 429  | Plus de 10 requêtes en une minute.                                                                                                                    |
