文档中心 > 防盗链
防盗链

最近更新时间:2022-07-25

本文介绍如何使用防盗链。

为了防止您在UOS上的数据被其他人盗链而产生额外费用,您可以设置防盗链功能,包括以下参数:

  • Referer白名单。仅允许指定的域名访问UOS资源。

  • 是否允许空Referer。如果不允许空Referer,则只有HTTP或HTTPS header中包含Referer字段的请求才能访问UOS资源。

更多关于防盗链的介绍,请参见用户指南中的防盗链。设置防盗链的完整代码请参见GitHub。


设置和获取防盗链

以下代码用于设置防盗链:

from src.ossConfig import ossConfig

import Oss as Oss

 

access_key = 'XXXXXXXXX'

secret_key = 'XXXXXXXXXXXXXXXXXXX'

endpoint_url = 'http://XXXXXXXXXXXXXXXXX.com'

config = ossConfig(access_key,secret_key,endpoint_url)

 

bucket_name = 'test1'

 

#以下规则为允许指定指定url访问,若想拒绝指定url访问,可将Effect设置为Deny,

#同时,若想允许或指定IP地址访问,可在Condition中更改。

BucketPolicy = '''{

           "Version": "2012-10-17",

           "Id": "http Referer policy example",

           "Statement": [

                  {

                      "Sid": "Allow get requests referred by url test1||Referer",

                      "Effect":"Allow",

                      "Principal": {

                            "AWS":"*"

                      },

                      "Action":["s3:GetObject"],

                      "Resource":[

                                 "arn:aws:s3:::''' + bucket_name + '''",

                                 "arn:aws:s3:::''' + bucket_name + '''/*"

                      ],

                      "Condition":

                                 {"StringLike":{"aws:Referer":["http://www.genltemen.com/*","http://genltemen.com/*"]}}

                  }

           ]

}'''

 

response = Oss.put_policy(config,bucket_name,BucketPolicy)

if response:

    print(response)

else:

    print('error')


清空防盗链

以下代码用于清空防盗链:

from src.ossConfig import ossConfig

import Oss as Oss

access_key = 'XXXXXXXXX'
secret_key = 'XXXXXXXXXXXXXXXXXXX'
endpoint_url = 'http://XXXXXXXXXXXXXXXXX.com'
config = ossConfig(access_key,secret_key,endpoint_url)

bucket_name = 'test1'

if Oss.delete_policy(config, bucket_name):
   print("delete complete!")
else:
   print("error")