tencent cloud

文档反馈

跨域访问

最后更新时间:2024-01-04 15:52:02

    简介

    本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
    API
    操作名
    操作描述
    设置跨域配置
    设置存储桶的跨域名访问权限
    查询跨域配置
    查询存储桶的跨域名访问配置信息
    删除跨域配置
    删除存储桶的跨域名访问配置信息

    SDK API 参考

    SDK 所有接口的具体参数与方法说明,请参考 SDK API 参考

    设置跨域配置

    功能说明

    设置指定存储桶的跨域名访问配置信息(PUT Bucket cors)。

    示例代码

    // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucket
    String bucket = "examplebucket-1250000000";
    PutBucketCORSRequest putBucketCORSRequest = new PutBucketCORSRequest(bucket);
    
    CORSConfiguration.CORSRule corsRule = new CORSConfiguration.CORSRule();
    
    // 配置规则的 ID
    corsRule.id = "123";
    // 允许的访问来源,支持通配符 *,格式为:协议://域名[:端口]
    corsRule.allowedOrigin = "https://cloud.tencent.com";
    // 设置 OPTIONS 请求得到结果的有效期
    corsRule.maxAgeSeconds = 5000;
    
    List<String> methods = new LinkedList<>();
    methods.add("PUT");
    methods.add("POST");
    methods.add("GET");
    // 允许的 HTTP 操作,例如:GET,PUT,HEAD,POST,DELETE
    corsRule.allowedMethod = methods;
    
    List<String> headers = new LinkedList<>();
    headers.add("host");
    headers.add("content-type");
    // 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用的 HTTP 请求头部,支持通配符 *
    corsRule.allowedHeader = headers;
    
    List<String> exposeHeaders = new LinkedList<>();
    exposeHeaders.add("x-cos-meta-1");
    // 设置浏览器可以接收到的来自服务端的自定义头部信息
    corsRule.exposeHeader = exposeHeaders;
    
    putBucketCORSRequest.addCORSRule(corsRule);
    
    cosXmlService.putBucketCORSAsync(putBucketCORSRequest,
    new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    PutBucketCORSResult putBucketCORSResult = (PutBucketCORSResult) result;
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。

    查询跨域配置

    功能说明

    查询指定存储桶的跨域名访问配置信息(GET Bucket cors)。

    示例代码

    // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucket
    String bucket = "examplebucket-1250000000";
    GetBucketCORSRequest getBucketCORSRequest = new GetBucketCORSRequest(bucket);
    cosXmlService.getBucketCORSAsync(getBucketCORSRequest,
    new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    GetBucketCORSResult getBucketCORSResult = (GetBucketCORSResult) result;
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。

    删除跨域配置

    功能说明

    删除指定存储桶的跨域名访问配置(DELETE Bucket cors)。

    示例代码

    // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucket
    String bucket = "examplebucket-1250000000";
    DeleteBucketCORSRequest deleteBucketCORSRequest =
    new DeleteBucketCORSRequest(bucket);
    cosXmlService.deleteBucketCORSAsync(deleteBucketCORSRequest,
    new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    DeleteBucketCORSResult deleteBucketCORSResult =
    (DeleteBucketCORSResult) result;
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持