全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

跨域资源共享

更新时间:2018-06-11 23:22:28

跨域资源共享(Cross-origin resource sharing,简称CORS)允许Web端的应用程序访问不属于本域的资源。OSS提供跨域资源共享接口,方便您控制跨域访问的权限。

关于CORS的更多内容,请参见开发指南中的设置跨域访问和API参考中的PutBucketcors

设置跨域资源共享规则

以下代码用于设置指定存储空间的跨域资源共享规则,已存在的规则将被覆盖。

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. from oss2.models import BucketCors, CorsRule
  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. rule = CorsRule(allowed_origins=['*'],
  9. allowed_methods=['GET', 'HEAD'],
  10. allowed_headers=['*'],
  11. max_age_seconds=1000)
  12. bucket.put_bucket_cors(BucketCors([rule]))

获取跨域资源共享规则

以下代码用于获取跨域资源共享规则:

  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. try:
  8. cors = bucket.get_bucket_cors()
  9. except oss2.exceptions.NoSuchCors:
  10. print('cors is not set')
  11. else:
  12. for rule in cors.rules:
  13. print('AllowedOrigins={0}'.format(rule.allowed_origins))
  14. print('AllowedMethods={0}'.format(rule.allowed_methods))
  15. print('AllowedHeaders={0}'.format(rule.allowed_headers))
  16. print('ExposeHeaders={0}'.format(rule.expose_headers))
  17. print('MaxAgeSeconds={0}'.format(rule.max_age_seconds))

删除跨域资源共享规则

以下代码用于删除指定存储空间的所有跨域资源共享规则:

  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. bucket.delete_bucket_cors()
本文导读目录