edit-icon download-icon

PutBucketReferer

最終更新日: Aug 01, 2018

PutBucketReferer 操作を使用すると、バケットのリファラーアクセスホワイトリストを設定したり、リファラーフィールドが null であるアクセスリクエストを許可するかどうかを指定したりできます。Bucket Referer Anti-leech Protection の詳細については、「OSS Anti-leech 保護」を参照してください。

リクエスト構文

  1. PUT /?referer HTTP/1.1
  2. Date: GMT Date
  3. Content-Length: ContentLength
  4. Content-Type: application/xml
  5. Host: BucketName.oss.aliyuncs.com
  6. Authorization: SignatureValue
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <RefererConfiguration>
  9. <AllowEmptyReferer>true</AllowEmptyReferer >
  10. <RefererList>
  11. <Referer> http://www.aliyun.com</Referer>
  12. <Referer> https://www.aliyun.com</Referer>
  13. <Referer> http://www.*.com</Referer>
  14. <Referer> https://www.?.aliyuncs.com</Referer>
  15. </RefererList>
  16. </RefererConfiguration>

リクエストの要素

名前 必須かどうか 説明
RefererConfiguration container はい リファラー設定のコンテンツの保存に使用されるコンテナー。
サブノード: AllowEmptyReferer ノード、RefererList ノード
親ノード: なし
AllowEmptyReferer enumerative string はい リファラーフィールドが null であるアクセスリクエストを許可するかどうかを指定します。
有効な値: true と false デフォルト値: true
親ノード: RefererConfiguration
RefererList container はい リファラーアクセスホワイトリストの保存に使用されるコンテナー。
親ノード: RefererConfiguration
サブノード: Referer
Referer string いいえ リファラーアクセスホワイトリストを指定します。
親ノード: RefererList

詳細分析

  • Put Bucket Referer リクエストを開始できるのはバケットオーナーだけです。他のユーザーが開始しようとすると、403 Forbidden というメッセージが返されます。エラーコードは AccessDenied です。
  • AllowEmptyReferer で指定した設定は、前の AllowEmptyReferer の設定を置き換えます。このフィールドは必須です。デフォルトでは、システムの AllowEmptyReferer の設定は true です。
  • この操作を実行すると、以前に設定したホワイトリストが RefererList のホワイトリストで上書きされます。アップロードした RefererList が空である (Referer リクエスト要素が含まれていない) 場合も、設定済みのホワイトリストが上書きされます (以前に設定した RefererList が削除されます)。
  • Content-MD5 リクエストヘッダーをアップロードした場合は、本文の Content-MD5 が計算されて、両者が同じであるかどうかが確認されます。異なる場合は、エラーコード InvalidDigest が返されます。

リクエストの例 (Referer が含まれていない場合):

  1. PUT /?referer HTTP/1.1
  2. Host: oss-example.oss.aliyuncs.com
  3. Content-Length: 247
  4. Date: Fri, 04 May 2012 03:21:12 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <RefererConfiguration>
  8. <AllowEmptyReferer>true</AllowEmptyReferer >
  9. < RefererList />
  10. </RefererConfiguration>

リクエストの例 (Referer が含まれている場合):

  1. PUT /?referer HTTP/1.1
  2. Host: oss-example.oss.aliyuncs.com
  3. Content-Length: 247
  4. Date: Fri, 04 May 2012 03:21:12 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <RefererConfiguration>
  8. <AllowEmptyReferer>true</AllowEmptyReferer >
  9. < RefererList>
  10. <Referer> http://www.aliyun.com</Referer>
  11. <Referer> https://www.aliyun.com</Referer>
  12. <Referer> http://www.*.com</Referer>
  13. <Referer> https://www.?.aliyuncs.com</Referer>
  14. </ RefererList>
  15. </RefererConfiguration>

レスポンスの例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 534B371674E88A4D8906008B
  3. Date: Fri, 04 May 2012 03:21:12 GMT
  4. Content-Length: 0
  5. Connection: keep-alive
  6. Server: AliyunOSS