tencent cloud

文档反馈

跨域访问

最后更新时间:2024-01-19 11:57:11

    简介

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

    SDK API 参考

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

    设置跨域配置

    功能说明

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

    示例代码

    Objective-C
    QCloudPutBucketCORSRequest* putCORS = [QCloudPutBucketCORSRequest new];
    QCloudCORSConfiguration* cors = [QCloudCORSConfiguration new];
    
    QCloudCORSRule* rule = [QCloudCORSRule new];
    
    // 配置规则 ID
    rule.identifier = @"rule1";
    
    // 跨域请求可以使用的 HTTP 请求头部,支持通配符 *
    rule.allowedHeader = @[@"origin",@"host",@"accept",
    @"content-type",@"authorization"];
    rule.exposeHeader = @"ETag";
    
    // 跨域请求允许的 HTTP 操作,例如:GET,PUT,HEAD,POST,DELETE
    rule.allowedMethod = @[@"GET",@"PUT",@"POST", @"DELETE", @"HEAD"];
    
    // 跨域请求得到结果的有效期
    rule.maxAgeSeconds = 3600;
    
    // 允许的访问来源,支持通配符 *,格式为:协议://域名[:端口]
    rule.allowedOrigin = @"http://cloud.tencent.com";
    
    cors.rules = @[rule];
    putCORS.corsConfiguration = cors;
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    putCORS.bucket = @"examplebucket-1250000000";
    
    [putCORS setFinishBlock:^(id outputObject, NSError *error) {
    // 可以从 outputObject 中获取服务器返回的 header 信息
    NSDictionary * result = (NSDictionary *)outputObject;
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] PutBucketCORS:putCORS];
    说明
    更多完整示例,请前往 GitHub 查看。
    Swift
    let putBucketCorsReq = QCloudPutBucketCORSRequest.init();
    
    let corsConfig = QCloudCORSConfiguration.init();
    
    let rule = QCloudCORSRule.init();
    
    // 配置规则的 ID
    rule.identifier = "rule1";
    
    // 跨域请求可以使用的 HTTP 请求头部,支持通配符 *
    rule.allowedHeader = ["origin","host","accept","content-type","authorization"];
    rule.exposeHeader = "Etag";
    
    // 跨域请求允许的 HTTP 操作,例如:GET,PUT,HEAD,POST,DELETE
    rule.allowedMethod = ["GET","PUT","POST", "DELETE", "HEAD"];
    
    // 跨域请求得到结果的有效期
    rule.maxAgeSeconds = 3600;
    
    // 允许的访问来源,支持通配符 *,格式为:协议://域名[:端口]
    rule.allowedOrigin = "*";
    
    corsConfig.rules = [rule];
    putBucketCorsReq.corsConfiguration = corsConfig;
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    putBucketCorsReq.bucket = "examplebucket-1250000000";
    putBucketCorsReq.finishBlock = {(result,error) in
    if let result = result {
    // 可以从 result 中获取服务器返回的 header 信息
    } else {
    print(error!)
    }
    }
    QCloudCOSXMLService.defaultCOSXML().putBucketCORS(putBucketCorsReq);
    说明
    更多完整示例,请前往 GitHub 查看。

    查询跨域配置

    功能说明

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

    示例代码

    Objective-C
    QCloudGetBucketCORSRequest* corsReqeust = [QCloudGetBucketCORSRequest new];
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    corsReqeust.bucket = @"examplebucket-1250000000";
    
    [corsReqeust setFinishBlock:^(QCloudCORSConfiguration * _Nonnull result,
    NSError * _Nonnull error) {
    // 跨域规则列表
    NSArray<QCloudCORSRule*> *rules = result.rules;
    
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] GetBucketCORS:corsReqeust];
    说明
    更多完整示例,请前往 GitHub 查看。
    Swift
    let getBucketCorsRes = QCloudGetBucketCORSRequest.init();
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    getBucketCorsRes.bucket = "examplebucket-1250000000";
    getBucketCorsRes.setFinish { (corsConfig, error) in
    if let corsConfig = corsConfig {
    // 跨域规则列表
    let rules = corsConfig.rules
    } else {
    print(error!)
    }
    }
    QCloudCOSXMLService.defaultCOSXML().getBucketCORS(getBucketCorsRes);
    说明
    更多完整示例,请前往 GitHub 查看。

    删除跨域配置

    功能说明

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

    示例代码

    Objective-C
    QCloudDeleteBucketCORSRequest* deleteCORS = [QCloudDeleteBucketCORSRequest new];
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    deleteCORS.bucket = @"examplebucket-1250000000";
    
    [deleteCORS setFinishBlock:^(id outputObject, NSError *error) {
    // 可以从 outputObject 中获取服务器返回的 header 信息
    NSDictionary* info = (NSDictionary *) outputObject;
    }];
    [[QCloudCOSXMLService defaultCOSXML] DeleteBucketCORS:deleteCORS];
    说明
    更多完整示例,请前往 GitHub 查看。
    Swift
    let deleteBucketCorsRequest = QCloudDeleteBucketCORSRequest.init();
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    deleteBucketCorsRequest.bucket = "examplebucket-1250000000";
    
    deleteBucketCorsRequest.finishBlock = {(result,error) in
    if let result = result {
    // 可以从 result 中获取服务器返回的 header 信息
    } else {
    print(error!)
    }
    }
    QCloudCOSXMLService.defaultCOSXML().deleteBucketCORS(deleteBucketCorsRequest);
    说明
    更多完整示例,请前往 GitHub 查看。
    联系我们

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

    技术支持

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

    7x24 电话支持