> ## 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 設定の更新

> PUT /v1/account/settings でプレフィックスごとのルールを設定します: 公開範囲、有効期限、キャッシュのデフォルト値、サイズとファイル形式の制限、N 日後の自動削除。

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  アカウントの API キーです。これは[アカウント設定](https://squarecloud.app/ja/account/security)で確認できます。
</ParamField>

設定の更新はルールを保存します。各ルールはプレフィックス配下のファイルに適用されます。ルールを使うと、バックエンド、[アップロードトークン](/ja/blob-reference/endpoint/upload-tokens)、ダッシュボードのいずれからのアップロードであっても、その配下のすべてのアップロードに対してデフォルト値と制限を一度で設定できます。`blob:write` スコープと有料プランが必要です。

保存できるルールの数はプランによって異なり、Hobby と Standard で **5 件**、Pro で **10 件**、Enterprise で **20 件**です。ダウングレード前に保存したルールは引き続き適用されますが、次回の保存時には新しいプランの上限に収める必要があります。

リクエストは**リスト全体を置き換えます**: 残したいルールをすべて送信してください。`{"rules": []}` を送信するとすべて削除されます。複数のルールがファイルに一致する場合は、**最も長いプレフィックス**を持つルールが優先されます。

* **デフォルト値** (`private`、`expire`、`cache_control`) は、アップロードで独自の値が設定されていない場合に適用されます。
* **制限** (`max_size`、`extensions`) は、範囲外のアップロードを `FILE_TOO_LARGE` または `FILE_TYPE_NOT_ALLOWED` で拒否します。REST のアップロードに適用され、[S3 ゲートウェイ](/ja/blob-reference/s3-compatibility)には適用されません。
* **自動削除** (`delete_after_days`) は、ファイルが書き込まれてから指定日数後にファイルを削除します。すでに存在していたファイルや S3 経由で書き込まれたファイルを含め、プレフィックス配下のすべてのファイルに適用されます。

<Warning>
  自動削除は**ルールの保存から 24 時間後**に初めて動作し始めます ([設定の取得](/ja/blob-reference/endpoint/settings-get)の `active_from`)。そのため、意図より広いプレフィックスに気付くための猶予が 1 日あります。変更のないルールを再度保存しても、元の日時が保持されます。動作を開始した後に削除されたファイルは復元できません。
</Warning>

<ParamField body="rules" type="object[]" required>
  Hobby と Standard で最大 5 件、Pro で 10 件、Enterprise で 20 件のルール。

  <Expandable title="properties">
    <ParamField body="prefix" type="string" required>
      プレフィックス。[オブジェクトのアップロード](/ja/blob-reference/endpoint/post)と同じパターンです。末尾に `/` を付けて保存されるため、`invoices` は `invoices/...` を対象とし、`invoices-old/...` は対象外です。
    </ParamField>

    <ParamField body="private" type="boolean">
      新しいファイルのデフォルトの公開範囲。
    </ParamField>

    <ParamField body="expire" type="string">
      新しいファイルのデフォルトの有効期限 (`30d`、`6h`)。7 日未満には Enterprise が必要です。
    </ParamField>

    <ParamField body="max_size" type="number">
      最大ファイルサイズ (バイト)。512〜10737418240 (10 GiB) です。
    </ParamField>

    <ParamField body="extensions" type="string[]">
      受け付ける拡張子。1〜50 個、小文字でドットなし (`pdf`、`tar.gz`) です。
    </ParamField>

    <ParamField body="cache_control" type="string">
      デフォルトのキャッシュ: `immutable`、`max-age=N`、または `no-cache` (Enterprise のみ)。
    </ParamField>

    <ParamField body="delete_after_days" type="number">
      ファイルが書き込まれてからこの日数後に削除します。1〜3650 です。7 未満には Enterprise が必要です。
    </ParamField>
  </Expandable>
</ParamField>

<Note>ルールのオプションを含まないプランに変更された場合 (たとえば Enterprise を離れた後の 7 日未満の有効期限)、ルールが変更されるまで、そのプレフィックス配下のアップロードは `UPGRADE_REQUIRED` で拒否されます。</Note>

### レート制限

<Note>1 分間に 10 リクエスト (`RATE_LIMITED`、429)。</Note>

### レスポンス

保存されたルールを、[設定の取得](/ja/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>

### エラー

1 つのルールに関するエラーには、レスポンスにそのルールの `prefix` が含まれます。

| コード                                                                                                                                                               | HTTP | 発生する状況                                                                        |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------------- |
| `INVALID_BODY`                                                                                                                                                    | 400  | 本文が JSON オブジェクトではない。                                                          |
| `NOTHING_TO_UPDATE`                                                                                                                                               | 400  | 本文に `rules` がない。                                                              |
| `INVALID_RULES`                                                                                                                                                   | 400  | `rules` がオブジェクトの配列ではない。                                                       |
| `TOO_MANY_RULES`                                                                                                                                                  | 400  | Enterprise でルールが 20 件を超えている。                                                  |
| `INVALID_RULE_PREFIX` / `DUPLICATE_RULE_PREFIX`                                                                                                                   | 400  | プレフィックスの形式が正しくない、または重複している。                                                   |
| `INVALID_RULE_PRIVATE` / `INVALID_RULE_EXPIRE` / `INVALID_RULE_MAX_SIZE` / `INVALID_RULE_EXTENSIONS` / `INVALID_RULE_CACHE_CONTROL` / `INVALID_RULE_DELETE_AFTER` | 400  | ルールのフィールドが無効。                                                                 |
| `PERMISSION_DENIED`                                                                                                                                               | 401  | アカウントに有効な有料プランがない。                                                            |
| `UPGRADE_REQUIRED`                                                                                                                                                | 403  | ルールの数がプランの上限を超えている、またはルールが上位のプランを必要とするオプションを使用している。`message` で上限またはプランが示されます。 |
| `RATE_LIMITED`                                                                                                                                                    | 429  | 1 分間に 10 リクエストを超えた。                                                           |
