PutBucketOverwriteConfig 操作を呼び出して、バケットの上書き保護を構成します。これにより、指定されたオブジェクトが上書きされるのを防ぎます。
注意事項
複数のクライアントが同時に存在しないパスに新規ファイルを書き込む、または削除中にファイルを書き込むなど、高同時実行数での書き込みシナリオでは競合状態が発生する可能性があります。具体的には、システムが最初に「上書き対象のファイルが存在しない」と判断して書き込みを許可した後、ファイルが作成されると、以降のすべての上書き試行がルールによってブロックされます。
forbidのみを構成すると、いかなる状況でも上書きが禁止されるため、リスクが高くなります。-
PutBucketOverwriteConfig 操作は上書きセマンティクスを持ちます。たとえば、バケットに Rule1 という名前の上書き保護ルールが構成されており、Rule2 という別のルールを追加したい場合は、以下の手順を実行する必要があります。
-
GetBucketOverwriteConfig 操作を呼び出して、Rule1 を含む現在の構成を取得します。
-
取得した構成に Rule2 を追加します。
-
PutBucketOverwriteConfig 操作を呼び出して、Rule1 と Rule2 の両方を含む新しい構成をアップロードします。
-
-
GetBucketOverwriteConfig が 404 エラーを返す場合、そのバケットには上書き保護が構成されていません。この場合、PutBucketOverwriteConfig を直接呼び出して新しいルールを設定できます。
-
1 つのバケットには最大 100 個の上書き保護ルールを設定できます。
-
プレフィックスおよびサフィックスの最大長は 1,023 文字です。
-
各ルールにはプレフィックスおよびサフィックスをそれぞれ最大 1 つずつ設定できます。プレフィックスおよびサフィックスは正規表現をサポートしません。アスタリスク(*)を入力した場合、文字列として扱われます。
-
ID は省略可能です。ID を指定しない場合、UUID がランダムに生成されます。ID を指定する場合は、一意である必要があります。異なるルールで同じ ID を使用することはできません。
-
Principal はアスタリスク(*)ワイルドカードをサポートします。Principal の構成方法の詳細については、「バケットポリシーの例」をご参照ください。
-
ルールは、そのすべてのフィルター条件(プレフィックス、サフィックス、プリンシパル)が満たされた場合にのみマッチします。いずれかのルールがマッチすると、上書き保護ルールがトリガーされ、上書きリクエストは拒否されます。
権限
Alibaba Cloud アカウント (root ユーザー) はデフォルトですべての権限を持ちます。Alibaba Cloud アカウント配下の Resource Access Management (RAM) ユーザーまたは RAM ロールは、デフォルトで権限を持っていません。RAM ポリシーまたはバケットポリシーを使用して、RAM ユーザーまたは RAM ロールに権限を付与する必要があります。
|
API |
アクション |
説明 |
|
PutBucketOverwriteConfig |
|
バケットの上書き保護を構成します。 |
リクエスト構文
PUT /?overwriteConfig HTTP/1.1
Host: bucket-name.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<OverwriteConfiguration>
<Rule>
<ID>string</ID>
<Action>forbid</Action>
<Prefix>string</Prefix>
<Suffix>string</Suffix>
<Principals>
<Principal>string</Principal>
</Principals>
</Rule>
</OverwriteConfiguration>
リクエストヘッダー
この操作では共通リクエストヘッダーのみを使用します。詳細については、「共通リクエストヘッダー」をご参照ください。
リクエスト要素
|
名前 |
タイプ |
必須 |
例 |
説明 |
|
OverwriteConfiguration |
コンテナー |
はい |
なし |
上書き保護構成のルートノードです。 |
|
Rule |
コンテナー |
はい |
なし |
上書き保護ルールです。1 つのバケットには最大 100 個のルールを設定できます。 |
|
ID |
文字列 |
いいえ |
rule-001 |
ルールの一意な識別子です。この要素を指定しない場合、UUID がランダムに生成されます。この要素を指定する場合は、値が一意である必要があります。異なるルールで同じ ID を使用することはできません。 |
|
Action |
文字列 |
はい |
forbid |
操作タイプです。現在は forbid(上書きを禁止)のみをサポートしています。 |
|
Prefix |
文字列 |
いいえ |
a/ |
処理対象のオブジェクトをフィルターするためのオブジェクト名のプレフィックスです。最大長は 1,023 文字です。各ルールにはプレフィックスを最大 1 つ設定できます。プレフィックスおよびサフィックスは正規表現をサポートしません。 |
|
Suffix |
文字列 |
いいえ |
.txt |
処理対象のオブジェクトをフィルターするためのオブジェクト名のサフィックスです。最大長は 1,023 文字です。各ルールにはサフィックスを最大 1 つ設定できます。プレフィックスおよびサフィックスは正規表現をサポートしません。 |
|
Principals |
コンテナー |
いいえ |
なし |
認可されたエンティティのコレクションです。使用方法はバケットポリシーの Principal 要素と同様です。Alibaba Cloud アカウント、RAM ユーザー、または RAM ロールを指定できます。この要素が空または構成されていない場合、プレフィックスおよびサフィックスの条件に一致するすべてのオブジェクトに対して上書きが禁止されます。 |
|
Principal |
文字列 |
いいえ |
27737962156157xxxx |
認可されたエンティティです。Alibaba Cloud アカウント、RAM ユーザー、または RAM ロールを指定できます。この要素が空の場合、設定は無効になります。 |
レスポンス要素
この操作はレスポンス要素を返しません。
レスポンスヘッダー
この操作では共通レスポンスヘッダーのみを使用します。詳細については、「共通リクエストヘッダー」をご参照ください。
使用例
-
リクエスト例
PUT /?overwriteConfig HTTP/1.1 Host: bucket-name.oss-cn-hangzhou.aliyuncs.com Authorization: SignatureValue <?xml version="1.0" encoding="UTF-8"?> <OverwriteConfiguration> <Rule> <ID>rule-001</ID> <Action>forbid</Action> <Prefix>a/</Prefix> <Suffix>.txt</Suffix> <Principals> <Principal>27737962156157xxxx</Principal> </Principals> </Rule> <Rule> <ID>rule-002</ID> <Action>forbid</Action> <Prefix>images/</Prefix> </Rule> <Rule> <ID>rule-003</ID> <Action>forbid</Action> <Suffix>.jpg</Suffix> </Rule> <Rule> <ID>rule-004</ID> <Action>forbid</Action> <Principals> <Principal>27737962156157xxxx</Principal> </Principals> </Rule> </OverwriteConfiguration> -
レスポンス例
HTTP/1.1 200 OK x-oss-request-id: 5C4E5B5C5E5F5A5B5C5D5XXX Date: Mon, 25 Nov 2025 15:00:59 GMT