Object Storage Service (OSS) バケットのリファラー ホワイトリストまたはブラックリストを構成します。
権限
デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 RAM ユーザーまたは Alibaba Cloud アカウント下の RAM ロールは、デフォルトでは権限を持っていません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシー または バケットポリシー を介して操作権限を付与する必要があります。
API | アクション | 定義 |
PutBucketReferer | oss:PutBucketReferer | バケットのホットリンク保護を構成します。 |
リクエスト構文
PUT /?referer HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
<AllowEmptyReferer>false</AllowEmptyReferer>
<AllowTruncateQueryString>true</AllowTruncateQueryString>
<TruncatePath>true</TruncatePath>
<RefererList>
<Referer>http://www.aliyun.com</Referer>
<Referer>https://www.aliyun.com</Referer>
<Referer>http://www.*.com</Referer>
<Referer>https://www.?.aliyuncs.com</Referer>
</RefererList>
<RefererBlacklist>
<Referer>http://www.refuse.com</Referer>
<Referer>https://*.hack.com</Referer>
<Referer>http://ban.*.com</Referer>
<Referer>https://www.?.deny.com</Referer>
</RefererBlacklist>
</RefererConfiguration>リクエスト要素
要素 | タイプ | 必須 | 例 | 説明 |
RefererConfiguration | コンテナ | はい | 該当なし | ホットリンク保護構成を格納するコンテナ。 子ノード: AllowEmptyReferer、AllowTruncateQueryString、RefererList 親ノード: なし |
AllowEmptyReferer | 列挙型文字列 | はい | false | Referer フィールドが空のリクエストを許可するかどうかを指定します。有効な値:
親ノード: RefererConfiguration |
AllowTruncateQueryString | 列挙型文字列 | いいえ | true | Referer が一致した場合に、URL 内のクエリ文字列を切り捨てるかどうかを指定します。有効な値:
親ノード: RefererConfiguration |
TruncatePath | 列挙型文字列 | いいえ | true | Referer が一致した場合に、URL 内のパスとパス以降の部分を切り捨てるかどうかを指定します。有効な値:
親ノード: RefererConfiguration |
RefererList | コンテナ | はい | 該当なし | リファラー ホワイトリストを格納するコンテナ。 説明 PutBucketReferer 操作は、既存のリファラー ホワイトリストを RefererList で指定されたリファラー ホワイトリストで上書きします。リクエストで RefererList が指定されていない場合、つまり Referer 要素が含まれていない場合は、PutBucketReferer 操作によって既存のリファラー ホワイトリストがクリアされます。 親ノード: RefererConfiguration 子ノード: Referer |
RefererBlacklist | コンテナ | いいえ | 該当なし | リファラー ブラックリストを格納するコンテナ。 説明 PutBucketReferer 操作は、既存のリファラー ブラックリストを RefererBlacklist で指定されたリファラー ブラックリストで上書きします。リクエストで RefererBlacklist が指定されていない場合、つまり Referer 要素が含まれていない場合は、PutBucketReferer 操作によって既存のリファラー ブラックリストがクリアされます。 親ノード: RefererConfiguration 子ノード: Referer |
Referer | 文字列 | いいえ | http://www.aliyun.com | リファラー ホワイトリストまたはブラックリスト内のアドレス。 親ノード: RefererList または RefererBlacklist |
PutBucketReferer 操作の Host や Date などの一般的なリクエストヘッダーの詳細については、「共通リクエストヘッダー」をご参照ください。
レスポンスヘッダー
PutBucketReferer リクエストへのレスポンス内のすべてのヘッダーは、共通レスポンスヘッダーです。詳細については、「共通レスポンスヘッダー」をご参照ください。
例
サンプルリクエスト
リファラー ホワイトリストまたはリファラー ブラックリストを含まないサンプルリクエスト
PUT /?referer HTTP/1.1 Host: BucketName.oss.example.com Content-Length: 247 Date: Thu, 17 Apr 2025 03:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>true</AllowEmptyReferer> <RefererList/> </RefererConfiguration>リファラー ホワイトリストのみを含むサンプルリクエスト
PUT /?referer HTTP/1.1 Host: BucketName.oss.example.com Content-Length: 247 Date: Thu, 17 Apr 2025 03:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <AllowTruncateQueryString>true</AllowTruncateQueryString> <TruncatePath>true</TruncatePath> <RefererList> <Referer>http://www.aliyun.com</Referer> <Referer>https://www.aliyun.com</Referer> <Referer>http://www.*.com</Referer> <Referer>https://www.?.aliyuncs.com</Referer> </RefererList> </RefererConfiguration>リファラー ホワイトリストとリファラー ブラックリストを含むサンプルリクエスト
PUT /?referer HTTP/1.1 Host: BucketName.oss.example.com Content-Length: *** Date: Thu, 17 Apr 2025 03:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <AllowTruncateQueryString>true</AllowTruncateQueryString> <TruncatePath>true</TruncatePath> <RefererList> <Referer>http://www.aliyun.com</Referer> <Referer>https://www.aliyun.com</Referer> <Referer>http://www.*.com</Referer> <Referer>https://www.?.aliyuncs.com</Referer> </RefererList> <RefererBlacklist> <Referer>http://www.refuse.com</Referer> <Referer>https://*.hack.com</Referer> <Referer>http://ban.*.com</Referer> <Referer>https://www.?.deny.com</Referer> </RefererBlacklist> </RefererConfiguration>
サンプルレスポンス
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS
x-oss-server-time: 110OSS SDK
以下のプログラミング言語の OSS SDK を使用して、PutBucketReferer 操作を呼び出すことができます。
ossutil
PutBucketReferer 操作に対応する ossutil コマンドについては、「put-bucket-referer」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
AccessDenied | 403 | PutBucketReferer 操作を実行する権限がありません。バケットの所有者のみが PutBucketReferer リクエストを開始できます。 |
InvalidDigest | 400 | OSS によって計算されたメッセージ本文の Content-MD5 値が、リクエストヘッダーの Content-MD5 値と一致しません。 Content-MD5 リクエストヘッダーがアップロードされると、OSS はメッセージ本文に基づいて MD5 ハッシュを計算し、計算された MD5 ハッシュがリクエストヘッダーで指定された Content-MD5 値と同じかどうかを確認します。 MD5 ハッシュが一致しない場合、このエラーコードが返されます。 |
InlineDataTooLarge | 400 | リファラー ホワイトリストとブラックリストが上限の 20 KB を超えています。リファラー ホワイトリストとブラックリストのエントリを減らしてください。 |