最近更新时间:2026-06-03 21:32:12
以下代码用于设置存储空间CORS跨域规则:
from ks3.connection import Connection
from ks3.xmlParsers.bucketCors import BucketCors, CORSRule
# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')
# 获取存储空间实例
b = c.get_bucket('<YOUR_BUCKET_NAME>')
# origins:允许跨域请求的来源地址;methods:允许跨域的请求方法;max_age: 指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,单位为秒; headers: 允许跨域的请求头部;exposed_headers: 允许跨域的响应头部
cors = BucketCors([CORSRule(origins=["http://dev.ksyun.com"], methods=["GET", "HEAD"], max_age="200", headers=["content-type"], exposed_headers=["content-type", "x-kss-acl"])])
print('cors rules: ', cors.to_xml())
# 设置CORS跨域规则
resp = b.set_bucket_cors(cors)
print("set_bucket_cors, request_id: ", resp.response_metadata.request_id)
有关设置存储空间CORS跨域规则相关API,请参见PUT Bucket CORS。
以下代码用于设置存储空间CORS跨域规则,支持控制非跨域响应是否包含Vary: Origin头部:
from ks3.connection import Connection
from ks3.xmlParsers.bucketCors import BucketCors, CORSRule
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')
b = c.get_bucket('<YOUR_BUCKET_NAME>')
# non_cross_origin_response_vary:控制非跨域响应是否包含 Vary: Origin 头部
# - 'true':非跨域响应包含 Vary: Origin 头部(默认行为)
# - 'false':非跨域响应不包含 Vary: Origin 头部,有助于提高缓存命中率
cors = BucketCors(
rules=[
CORSRule(
origins=["*"],
methods=["GET", "POST", "HEAD"],
max_age="300",
headers=["*"],
exposed_headers=["ETag", "x-kss-request-id"]
)
],
non_cross_origin_response_vary='false'
)
# 设置CORS跨域规则
resp = b.set_bucket_cors(cors)
print("set_bucket_cors, request_id: ", resp.response_metadata.request_id)
non_cross_origin_response_vary 参数用于控制非跨域请求的响应是否携带
Vary: Origin 头部。设置为 'false' 时,非跨域响应不包含该头部,有助于 CDN
等缓存系统提高缓存命中率。该参数为可选项,不设置时保持默认行为。
以下代码用于查看存储空间CORS跨域规则:
from ks3.connection import Connection
# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')
# 获取存储空间实例
b = c.get_bucket('<YOUR_BUCKET_NAME>')
# 查看存储空间CORS跨域规则
cors = b.get_bucket_cors()
print("get_bucket_cors, request_id: ", cors.response_metadata.request_id)
print(cors.to_xml())
有关查看存储空间CORS跨域规则相关API,请参见GET Bucket CORS。
以下代码用于删除存储空间CORS跨域规则:
from ks3.connection import Connection
# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')
# 获取存储空间实例
b = c.get_bucket('<YOUR_BUCKET_NAME>')
# 删除存储空间CORS跨域规则
resp = b.delete_bucket_cors()
print("delete_bucket_cors, request_id: ", resp.response_metadata.request_id)
有关删除存储空间CORS跨域规则相关API,请参见DELETE Bucket CORS。
纯净模式
