简介
本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
关于跨域访问的更多说明详见 跨域访问, 通过控制台设置跨域的操作步骤请参见 设置跨域访问 或最佳实践文档 跨域访问。
API | 操作名 | 操作描述 |
---|---|---|
PUT Bucket cors | 设置跨域配置 | 设置存储桶的跨域名访问权限 |
GET Bucket cors | 查询跨域配置 | 查询存储桶的跨域名访问配置信息 |
DELETE Bucket cors | 删除跨域配置 | 删除存储桶的跨域名访问配置信息 |
设置跨域配置
功能说明
设置指定存储桶的跨域名访问配置信息(PUT Bucket cors)。
方法原型
public void setBucketCrossOriginConfiguration(String bucketName, BucketCrossOriginConfiguration bucketCrossOriginConfiguration);
请求示例
// bucket的命名格式为 BucketName-APPID ,此处填写的存储桶名称必须为此格式
String bucketName = "examplebucket-1250000000";
BucketCrossOriginConfiguration bucketCORS = new BucketCrossOriginConfiguration();
List<CORSRule> corsRules = new ArrayList<CORSRule>();
CORSRule corsRule = new CORSRule();
// 规则名称
corsRule.setId("set-bucket-cors-test");
// 允许的 HTTP 方法
corsRule.setAllowedMethods(CORSRule.AllowedMethods.PUT, CORSRule.AllowedMethods.GET, CORSRule.AllowedMethods.HEAD);
corsRule.setAllowedHeaders("x-cos-grant-full-control");
corsRule.setAllowedOrigins("http://mail.qq.com", "http://www.qq.com", "http://video.qq.com");
corsRule.setExposedHeaders("x-cos-request-id");
corsRule.setMaxAgeSeconds(60);
corsRules.add(corsRule);
bucketCORS.setRules(corsRules);
cosClient.setBucketCrossOriginConfiguration(bucketName, bucketCORS);
参数说明
参数名称 | 描述 | 类型 |
---|---|---|
bucketName | 存储桶的命名格式为 BucketName-APPID,详情请参见 命名规范 | String |
bucketCrossOriginConfiguration | 设置的存储桶跨域策略 | BucketCrossOriginConfiguration |
返回结果说明
- 成功:无返回值。
- 失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。具体请参见 异常处理。
查询跨域配置
功能说明
查询指定存储桶的跨域名访问配置信息(GET Bucket cors)。
方法原型
public BucketCrossOriginConfiguration getBucketCrossOriginConfiguration(String bucketName)
throws CosClientException, CosServiceException;
请求示例
// bucket的命名格式为 BucketName-APPID ,此处填写的存储桶名称必须为此格式
String bucketName = "examplebucket-1250000000";
BucketCrossOriginConfiguration corsGet = cosClient.getBucketCrossOriginConfiguration(bucketName);
List<CORSRule> corsRules = corsGet.getRules();
for (CORSRule rule : corsRules) {
List<CORSRule.AllowedMethods> allowedMethods = rule.getAllowedMethods();
List<String> allowedHeaders = rule.getAllowedHeaders();
List<String> allowedOrigins = rule.getAllowedOrigins();
List<String> exposedHeaders = rule.getExposedHeaders();
int maxAgeSeconds = rule.getMaxAgeSeconds();
}
参数说明
参数名称 | 描述 | 类型 |
---|---|---|
bucketName | 存储桶的命名格式为 BucketName-APPID,详情请参见 命名规范 | String |
返回结果说明
- 成功:返回存储桶的跨域规则。
- 失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。具体请参见 异常处理。
删除跨域配置
功能说明
删除指定存储桶的跨域名访问配置(DELETE Bucket cors)。
方法原型
public void deleteBucketCrossOriginConfiguration(String bucketName)
throws CosClientException, CosServiceException;
请求示例
//存储桶的命名格式为 BucketName-APPID
String bucketName = "examplebucket-1250000000";
cosClient.deleteBucketCrossOriginConfiguration(bucketName);
参数说明
参数名称 | 描述 | 类型 |
---|---|---|
bucketName | 存储桶的命名格式为 BucketName-APPID,详情请参见 命名规范 | String |
返回结果说明
- 成功:无返回值。
- 失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。 具体请参见 异常处理。