简介
本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
设置跨域配置
注意:
- 如果要在前端修改跨域访问配置,需要该存储桶本身支持跨域,您可以在控制台进行跨域访问配置,详情请参见 快速入门 文档。
- 在修改跨域访问配置时,请注意不要影响到当前的 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 |
删除跨域配置
功能说明
删除存储桶的跨域名访问配置信息。
注意:
- 删除当前存储桶的跨域访问配置信息,会导致所有请求跨域失败,请谨慎操作。
- 不推荐在浏览器端使用该方法。
请求示例
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 |