全部产品
阿里云办公

跨域资源共享

更新时间:2018-07-13 14:13:54

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

更多关于跨域资源共享的介绍,请参见开发指南中的设置跨域访问和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. # 已存在的规则将被覆盖。
  13. 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()
本文导读目录