简介
本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
设置跨域配置 | 设置存储桶的跨域名访问权限 | |
查询跨域配置 | 查询存储桶的跨域名访问配置信息 | |
删除跨域配置 | 删除存储桶的跨域名访问配置信息 |
设置跨域配置
注意
1. 如果要在前端修改跨域访问配置,需要该存储桶本身支持跨域,您可以在控制台进行跨域访问配置,详情请参见 快速入门 文档。
2. 在修改跨域访问配置时,请注意不要影响到当前的 Origin 下的跨域请求。
功能说明
设置存储桶的跨域名访问权限,您可以通过传入 XML 格式的配置文件来实现配置,文件大小限制为64KB。默认情况下,存储桶的持有者直接有权限使用该 API 接口,存储桶持有者也可以将权限授予其他用户。关于跨域访问的更多说明请参见 跨域访问,通过控制台设置跨域的操作步骤请参见 设置跨域访问 或 跨域访问最佳实践文档。
请求示例
cos.putBucketCors({Bucket: 'examplebucket-1250000000', /* 必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */CORSRules: [{"AllowedOrigin": ["*"],"AllowedMethod": ["GET", "POST", "PUT", "DELETE", "HEAD"],"AllowedHeader": ["*"],"ExposeHeader": ["ETag", "x-cos-acl", "x-cos-version-id", "x-cos-delete-marker", "x-cos-server-side-encryption"],"MaxAgeSeconds": "5"}]}, function(err, data) {console.log(err || data);});
参数说明
参数名称 | 描述 | 类型 | 是否必填 |
Bucket | 设置跨域配置的存储桶,格式:BucketName-APPID | String | 是 |
Region | 存储桶所在地域,枚举值请参见 地域和访问域名 | String | 是 |
CORSRules | 说明跨域资源共享配置的所有信息列表 | ObjectArray | 否 |
- ID | 配置规则的 ID | String | 否 |
- AllowedMethods | 允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE 等 | StringArray | 是 |
- AllowedOrigins | 允许的访问来源,支持通配符 * ,格式为:协议://域名[:端口] ,例如:http://www.qq.com | StringArray | 是 |
- AllowedHeaders | 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 * | StringArray | 否 |
- ExposeHeaders | 设置浏览器可以接收到的来自服务器端的自定义头部信息 | StringArray | 否 |
- MaxAgeSeconds | 设置 OPTIONS 请求得到结果的有效期 | String | 否 |
回调函数说明
function(err, data) { ... }
参数名 | 参数描述 | 类型 |
err | Object | |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
data | 请求成功时返回的对象,如果请求发生错误,则为空 | Object |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
查询跨域配置
功能说明
GET Bucket cors 接口实现查询存储桶的跨域名访问配置信息。(CORS 是一个 W3C 标准,全称是"跨域资源共享"(Cross-origin Resource Sharing))。默认情况下,存储桶的持有者直接有权限使用该 API 接口,存储桶持有者也可以将权限授予其他用户。
请求示例
cos.getBucketCors({Bucket: 'examplebucket-1250000000', /* 必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */}, function(err, data) {console.log(err || data);});
返回示例
{"CORSRules": [{"MaxAgeSeconds": "5","AllowedOrigins": ["*"],"AllowedHeaders": ["*"],"AllowedMethods": ["GET", "POST", "PUT", "DELETE", "HEAD"],"ExposeHeaders": ["ETag", "Content-Length", "x-cos-acl", "x-cos-version-id", "x-cos-request-id", "x-cos-delete-marker", "x-cos-server-side-encryption"]}],"statusCode": 200,"headers": {}}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
Bucket | 查询跨域配置的存储桶,格式:BucketName-APPID | String | 是 |
Region | 存储桶所在地域,枚举值请参见 地域和访问域名 | String | 是 |
回调函数说明
function(err, data) { ... }
参数名 | 参数描述 | 类型 |
err | Object | |
data | 请求成功时返回的对象,如果请求发生错误,则为空 | Object |
- CORSRules | 说明跨域资源共享配置的所有信息列表 | ObjectArray |
- - AllowedMethods | 允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE | StringArray |
- - AllowedOrigins | 允许的访问来源,支持通配符 * ,格式为:协议://域名[:端口] 例如: http://www.qq.com | StringArray |
- - AllowedHeaders | 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 * | StringArray |
- - ExposeHeaders | 设置浏览器可以接收到的来自服务器端的自定义头部信息 | StringArray |
- - MaxAgeSeconds | 设置 OPTIONS 跨域信息缓存秒数 | String |
- - ID | 配置规则的 ID | String |
删除跨域配置
功能说明
删除存储桶的跨域名访问配置信息。
注意
1. 删除当前存储桶的跨域访问配置信息,会导致所有请求跨域失败,请谨慎操作。
2. 不推荐在浏览器端使用该方法。
请求示例
cos.deleteBucketCors({Bucket: 'examplebucket-1250000000', /* 必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */}, function(err, data) {console.log(err || data);});
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
Bucket | 被删除跨域配置的存储桶,格式:BucketName-APPID | String | 是 |
Region | 存储桶所在地域,枚举值请参见 地域和访问域名 | String | 是 |
回调函数说明
function(err, data) { ... }
参数名 | 参数描述 | 类型 |
err | Object | |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
data | 请求成功时返回的对象,如果请求发生错误,则为空 | Object |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |