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

> Lege mit PUT /v1/account/settings Regeln pro Präfix fest: Standard-Sichtbarkeit, -Ablauf und -Cache, Limits für Größe und Dateityp sowie automatische Löschung nach N Tagen.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  Der API-Schlüssel für Ihr Konto. Sie finden ihn in Ihren [Kontoeinstellungen](https://squarecloud.app/de/account/security).
</ParamField>

Update Settings speichert deine Regeln, die jeweils für die Dateien unter einem Präfix gelten. Eine Regel legt Standardwerte und Limits einmalig fest, für jeden Upload darunter, egal ob er von deinem Backend, einem [Upload-Token](/de/blob-reference/endpoint/upload-tokens) oder dem Dashboard kommt. Erfordert den Scope `blob:write` und einen kostenpflichtigen Plan.

Jeder Plan erlaubt eine bestimmte Anzahl von Regeln: **5** bei Hobby und Standard, **10** bei Pro und **20** bei Enterprise. Vor einem Downgrade gespeicherte Regeln gelten weiter, aber das nächste Speichern muss in den neuen Plan passen.

Der Request **ersetzt die gesamte Liste**: Sende jede Regel, die du behalten willst, und `{"rules": []}` entfernt alle. Wenn mehrere Regeln auf eine Datei passen, gewinnt die mit dem **längsten Präfix**.

* **Standardwerte** (`private`, `expire`, `cache_control`) gelten, wenn der Upload keinen eigenen Wert festlegt.
* **Limits** (`max_size`, `extensions`) lehnen Uploads außerhalb davon mit `FILE_TOO_LARGE` oder `FILE_TYPE_NOT_ALLOWED` ab. Sie gelten für REST-Uploads, nicht für das [S3-Gateway](/de/blob-reference/s3-compatibility).
* **Automatische Löschung** (`delete_after_days`) löscht Dateien eine bestimmte Anzahl von Tagen, nachdem sie geschrieben wurden. Sie gilt für jede Datei unter dem Präfix, einschließlich bereits vorhandener Dateien und über S3 geschriebener Dateien.

<Warning>
  Die automatische Löschung beginnt erst **24 Stunden nach dem Speichern der Regel** (`active_from` in [Get Settings](/de/blob-reference/endpoint/settings-get)), sodass du einen Tag Zeit hast, ein Präfix zu bemerken, das weiter gefasst ist als beabsichtigt. Das erneute Speichern einer unveränderten Regel behält ihr ursprüngliches Datum. Sobald sie aktiv ist, können gelöschte Dateien nicht wiederhergestellt werden.
</Warning>

<ParamField body="rules" type="object[]" required>
  Bis zu 5 Regeln bei Hobby und Standard, 10 bei Pro und 20 bei Enterprise.

  <Expandable title="Eigenschaften">
    <ParamField body="prefix" type="string" required>
      Das Präfix, dasselbe Muster wie in [Object Post](/de/blob-reference/endpoint/post). Wird mit abschließendem `/` gespeichert, sodass `invoices` `invoices/...` abdeckt und nicht `invoices-old/...`.
    </ParamField>

    <ParamField body="private" type="boolean">
      Standard-Sichtbarkeit neuer Dateien.
    </ParamField>

    <ParamField body="expire" type="string">
      Standard-Ablauf neuer Dateien (`30d`, `6h`). Unter 7 Tagen erfordert Enterprise.
    </ParamField>

    <ParamField body="max_size" type="number">
      Maximale Dateigröße in Bytes, von 512 bis 10737418240 (10 GiB).
    </ParamField>

    <ParamField body="extensions" type="string[]">
      Akzeptierte Endungen, 1 bis 50, in Kleinbuchstaben und ohne Punkt (`pdf`, `tar.gz`).
    </ParamField>

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

    <ParamField body="delete_after_days" type="number">
      Löscht Dateien so viele Tage, nachdem sie geschrieben wurden, von 1 bis 3650. Unter 7 erfordert Enterprise.
    </ParamField>
  </Expandable>
</ParamField>

<Note>Wechselt der Plan zu einem, der eine Option einer Regel nicht enthält (zum Beispiel ein Ablauf unter 7 Tagen nach dem Verlassen von Enterprise), werden Uploads unter diesem Präfix mit `UPGRADE_REQUIRED` abgelehnt, bis die Regel geändert wird.</Note>

### Rate Limits

<Note>10 Requests pro Minute (`RATE_LIMITED`, 429).</Note>

### Antwort

Gibt die gespeicherten Regeln zurück, in derselben Form wie [Get Settings](/de/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>

### Fehler

Fehler zu einer einzelnen Regel enthalten deren `prefix` in der Antwort.

| Code                                                                                                                                                              | HTTP | Wann                                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `INVALID_BODY`                                                                                                                                                    | 400  | Der Body ist kein JSON-Objekt.                                                                                                                           |
| `NOTHING_TO_UPDATE`                                                                                                                                               | 400  | Der Body hat keine `rules`.                                                                                                                              |
| `INVALID_RULES`                                                                                                                                                   | 400  | `rules` ist kein Array von Objekten.                                                                                                                     |
| `TOO_MANY_RULES`                                                                                                                                                  | 400  | Mehr als 20 Regeln bei Enterprise.                                                                                                                       |
| `INVALID_RULE_PREFIX` / `DUPLICATE_RULE_PREFIX`                                                                                                                   | 400  | Ein Präfix ist fehlerhaft oder wiederholt.                                                                                                               |
| `INVALID_RULE_PRIVATE` / `INVALID_RULE_EXPIRE` / `INVALID_RULE_MAX_SIZE` / `INVALID_RULE_EXTENSIONS` / `INVALID_RULE_CACHE_CONTROL` / `INVALID_RULE_DELETE_AFTER` | 400  | Ein Feld einer Regel ist ungültig.                                                                                                                       |
| `PERMISSION_DENIED`                                                                                                                                               | 401  | Das Konto hat keinen aktiven kostenpflichtigen Plan.                                                                                                     |
| `UPGRADE_REQUIRED`                                                                                                                                                | 403  | Mehr Regeln, als der Plan erlaubt, oder eine Regel verwendet eine Option, die einen höheren Plan erfordert. Die `message` nennt das Limit oder den Plan. |
| `RATE_LIMITED`                                                                                                                                                    | 429  | Mehr als 10 Requests in einer Minute.                                                                                                                    |
