全部产品
Search
文档中心

对象存储 OSS:Ruby跨域资源共享

更新时间:Sep 05, 2023

跨域资源共享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