跨域资源共享CORS(Cross-Origin Resource Sharing)简称跨域访问,是HTML5提供的标准跨域解决方案,允许Web应用服务器进行跨域访问控制,确保跨域数据传输的安全性。
设置跨域资源共享规则
以下代码用于设置指定存储空间的跨域资源共享规则:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 设置跨域资源共享规则。
bucket.cors = [
Aliyun::OSS::CORSRule.new(
# 指定允许跨域请求的来源,例如http://example.com。
:allowed_origins => ['http://example.com', 'http://example.net'],
# 指定允许的跨域请求的HTTP方法(GET/PUT/DELETE/POST/HEAD)。
:allowed_methods => ['PUT', 'POST', 'GET'],
# 在OPTIONS预取指令中允许的header,例如x-oss-test。
:allowed_headers => ['x-oss-test'],
# 指定允许用户从应用程序中访问的响应头。
:expose_headers => ['x-oss-test1'],
# 指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,单位为秒。
:max_age_seconds => 100)
]
获取跨域资源共享规则
以下代码用于获取跨域资源共享规则:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
cors = bucket.cors
puts cors.map(&:to_s)
删除跨域资源共享规则
以下代码用于删除指定存储空间的所有跨域资源共享规则:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
bucket.cors = []
相关文档
关于设置跨域资源共享规则的API接口说明,请参见PutBucketCors。
关于获取跨域资源共享规则的API接口说明,请参见GetBucketCors。
关于删除跨域资源共享规则的API接口说明,请参见DeleteBucketCors。