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

> Define reglas por prefijo con PUT /v1/account/settings: visibilidad, expiración y caché por defecto, límites de tamaño y tipo de archivo, y eliminación automática tras N días.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clave de API de tu cuenta. Puedes encontrarla en la [configuración de tu cuenta](https://squarecloud.app/es/account/security).
</ParamField>

Update Settings guarda tus reglas, cada una aplicada a los archivos bajo un prefijo. Una regla define valores por defecto y límites una sola vez, para cada subida bajo ella, venga de tu backend, de un [token de subida](/es/blob-reference/endpoint/upload-tokens) o del dashboard. Requiere el scope `blob:write` y un plan de pago.

Cada plan permite una cantidad de reglas: **5** en Hobby y Standard, **10** en Pro y **20** en Enterprise. Las reglas guardadas antes de bajar de plan siguen aplicándose, pero el siguiente guardado debe ajustarse al nuevo plan.

La solicitud **reemplaza la lista completa**: envía todas las reglas que quieras conservar, y `{"rules": []}` las elimina todas. Cuando varias reglas coinciden con un archivo, gana la del **prefijo más largo**.

* **Los valores por defecto** (`private`, `expire`, `cache_control`) se aplican cuando la subida no define su propio valor.
* **Los límites** (`max_size`, `extensions`) rechazan las subidas que quedan fuera de ellos con `FILE_TOO_LARGE` o `FILE_TYPE_NOT_ALLOWED`. Se aplican a las subidas REST, no al [gateway S3](/es/blob-reference/s3-compatibility).
* **La eliminación automática** (`delete_after_days`) elimina los archivos un número de días después de que se escribieron. Se aplica a todos los archivos bajo el prefijo, incluidos los que ya existían y los escritos por S3.

<Warning>
  La eliminación automática solo empieza **24 horas después de guardar la regla** (`active_from` en [Get Settings](/es/blob-reference/endpoint/settings-get)), así que tienes un día para detectar un prefijo más amplio de lo previsto. Volver a guardar una regla sin cambios conserva su fecha original. Una vez activa, los archivos eliminados no se pueden recuperar.
</Warning>

<ParamField body="rules" type="object[]" required>
  Hasta 5 reglas en Hobby y Standard, 10 en Pro y 20 en Enterprise.

  <Expandable title="propiedades">
    <ParamField body="prefix" type="string" required>
      El prefijo, mismo patrón que en [Object Post](/es/blob-reference/endpoint/post). Se guarda con una `/` final, así que `invoices` cubre `invoices/...` y no `invoices-old/...`.
    </ParamField>

    <ParamField body="private" type="boolean">
      Visibilidad por defecto de los archivos nuevos.
    </ParamField>

    <ParamField body="expire" type="string">
      Expiración por defecto de los archivos nuevos (`30d`, `6h`). Menos de 7 días requiere Enterprise.
    </ParamField>

    <ParamField body="max_size" type="number">
      Tamaño máximo del archivo en bytes, de 512 a 10737418240 (10 GiB).
    </ParamField>

    <ParamField body="extensions" type="string[]">
      Extensiones aceptadas, de 1 a 50, en minúsculas y sin el punto (`pdf`, `tar.gz`).
    </ParamField>

    <ParamField body="cache_control" type="string">
      Caché por defecto: `immutable`, `max-age=N` o `no-cache` (solo Enterprise).
    </ParamField>

    <ParamField body="delete_after_days" type="number">
      Elimina los archivos este número de días después de que se escribieron, de 1 a 3650. Menos de 7 requiere Enterprise.
    </ParamField>
  </Expandable>
</ParamField>

<Note>Si el plan cambia a uno que no incluye una opción de una regla (por ejemplo, una expiración de menos de 7 días tras dejar Enterprise), las subidas bajo ese prefijo se rechazan con `UPGRADE_REQUIRED` hasta que se cambie la regla.</Note>

### Límites de tasa

<Note>10 solicitudes por minuto (`RATE_LIMITED`, 429).</Note>

### Respuesta

Devuelve las reglas guardadas, con la misma forma que [Get Settings](/es/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>

### Errores

Los errores sobre una regla incluyen su `prefix` en la respuesta.

| Código                                                                                                                                                            | HTTP | Cuándo                                                                                                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `INVALID_BODY`                                                                                                                                                    | 400  | El cuerpo no es un objeto JSON.                                                                                                           |
| `NOTHING_TO_UPDATE`                                                                                                                                               | 400  | El cuerpo no tiene `rules`.                                                                                                               |
| `INVALID_RULES`                                                                                                                                                   | 400  | `rules` no es un array de objetos.                                                                                                        |
| `TOO_MANY_RULES`                                                                                                                                                  | 400  | Más de 20 reglas en Enterprise.                                                                                                           |
| `INVALID_RULE_PREFIX` / `DUPLICATE_RULE_PREFIX`                                                                                                                   | 400  | Un prefijo está mal formado o repetido.                                                                                                   |
| `INVALID_RULE_PRIVATE` / `INVALID_RULE_EXPIRE` / `INVALID_RULE_MAX_SIZE` / `INVALID_RULE_EXTENSIONS` / `INVALID_RULE_CACHE_CONTROL` / `INVALID_RULE_DELETE_AFTER` | 400  | Un campo de una regla no es válido.                                                                                                       |
| `PERMISSION_DENIED`                                                                                                                                               | 401  | La cuenta no tiene un plan de pago activo.                                                                                                |
| `UPGRADE_REQUIRED`                                                                                                                                                | 403  | Más reglas de las que permite el plan, o una regla usa una opción que requiere un plan superior. El `message` indica el límite o el plan. |
| `RATE_LIMITED`                                                                                                                                                    | 429  | Más de 10 solicitudes en un minuto.                                                                                                       |
