全部產品
Search
文件中心

Object Storage Service:防盜鏈

更新時間:Aug 30, 2018

為了防止您在OSS上的資料被其他人盜鏈而產生額外費用,您可以設定防盜鏈功能,包括以下參數:

  • Referer白名單。僅允許指定的網域名稱訪問OSS資源。
  • 是否允許空Referer。如果不允許空Referer,則只有HTTP或HTTPS header中包含Referer欄位的請求才能訪問OSS資源。

關於防盜鏈的更多介紹,請參見開發指南中的設定防盜鏈

設定防盜鏈

以下代碼用於設定防盜鏈:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. from oss2.models import BucketReferer
  4. # 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
  5. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  6. # Endpoint以杭州為例,其它Region請按實際情況填寫。
  7. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  8. # 設定允許空Referer(True表示允許空Referer,False表示不允許空Referer),並設定Referer白名單。
  9. bucket.put_bucket_referer(BucketReferer(True, ['http://aliyun.com', 'http://*.aliyuncs.com']))

獲取防盜鏈資訊

以下代碼用於獲取防盜鏈資訊:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. # Endpoint以杭州為例,其它Region請按實際情況填寫。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. config = bucket.get_bucket_referer()
  8. print('allow empty referer={0}, referers={1}'.format(config.allow_empty_referer, config.referers))

清空防盜鏈

以下代碼用於清空防盜鏈:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. # Endpoint以杭州為例,其它Region請按實際情況填寫。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. # 不能直接清空防盜鏈,需要新建一個允許空Referer的規則來覆蓋之前的規則。
  8. bucket.put_bucket_referer(BucketReferer(True, []))