tencent cloud

Feedback

Cross-Origin Resource Sharing

Last updated: 2022-05-25 15:22:40

    Overview

    This document provides an overview of APIs and SDK sample codes for cross-origin resource sharing (CORS).

    API Operation Description
    PUT Bucket cors Setting CORS configuration Sets the CORS permissions of bucket
    GET Bucket cors Querying CORS configuration Queries the CORS configuration of a bucket
    DELETE Bucket cors Deleting CORS configuration Deletes the CORS configuration of a bucket

    SDK API References

    For parameters and method description of all APIs in the SDK, see SDK API Reference.

    Setting CORS Configuration

    Feature description

    This API is used to set the CORS configuration of a specified bucket.

    Sample code

    Objective-C

    QCloudPutBucketCORSRequest* putCORS = [QCloudPutBucketCORSRequest new];
    QCloudCORSConfiguration* cors = [QCloudCORSConfiguration new];
    QCloudCORSRule* rule = [QCloudCORSRule new];
    // Set rule ID
    rule.identifier = @"sdk";
    // Allowed HTTP request headers. The wildcard "*" is supported.
    rule.allowedHeader = @[@"origin",@"host",@"accept",
                          @"content-type",@"authorization"];
    rule.exposeHeader = @"ETag";
    // Allowed HTTP method values (such as GET, PUT, HEAD, POST and DELETE)
    rule.allowedMethod = @[@"GET",@"PUT",@"POST", @"DELETE", @"HEAD"];
    // Validity period of results
    rule.maxAgeSeconds = 3600;
    // Allowed origin in the format of `protocol://domain name[:port number]`. The wildcard * is supported.
    rule.allowedOrigin = @"http://cloud.tencent.com";
    cors.rules = @[rule];
    putCORS.corsConfiguration = cors;
    // Bucket name in the format of BucketName-APPID, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/cos5/bucket
    putCORS.bucket = @"examplebucket-1250000000";
    [putCORS setFinishBlock:^(id outputObject, NSError *error) {
       // You can get the header information returned by the server from outputObject
       NSDictionary * result = (NSDictionary *)outputObject;
    }];
    [[QCloudCOSXMLService defaultCOSXML] PutBucketCORS:putCORS];
    
    Note:

    For the complete sample, go to GitHub.

    Swift

    let putBucketCorsReq = QCloudPutBucketCORSRequest.init();
    let corsConfig = QCloudCORSConfiguration.init();
    let rule = QCloudCORSRule.init();
    // Set rule ID
    rule.identifier = "rule1";
    // Allowed HTTP request headers. The wildcard "*" is supported.
    rule.allowedHeader = ["origin","host","accept","content-type","authorization"];
    rule.exposeHeader = "Etag";
    // Allowed HTTP method values (such as GET, PUT, HEAD, POST and DELETE)
    rule.allowedMethod = ["GET","PUT","POST", "DELETE", "HEAD"];
    // Validity period of results
    rule.maxAgeSeconds = 3600;
    // Allowed origin in the format of `protocol://domain name[:port number]`. The wildcard * is supported.
    rule.allowedOrigin = "*";
    corsConfig.rules = [rule];
    putBucketCorsReq.corsConfiguration = corsConfig;
    // Bucket name in the format of BucketName-APPID, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/cos5/bucket
    putBucketCorsReq.bucket = "examplebucket-1250000000";
    putBucketCorsReq.finishBlock = {(result,error) in
       if let result = result {
           // You can get the header information returned by the server from result
       } else {
           print(error!)
       }
    }
    QCloudCOSXMLService.defaultCOSXML().putBucketCORS(putBucketCorsReq);
    
    Note:

    For the complete sample, go to GitHub.

    Querying CORS Configuration

    Feature description

    This API is used to query the CORS configuration of a bucket.

    Sample code

    Objective-C

    QCloudGetBucketCORSRequest* corsRequest = [QCloudGetBucketCORSRequest new];
    // Bucket name in the format of BucketName-APPID, which can be viewed in the COS console at https://console.cloud.tencent.com/cos5/bucket
    corsRequest.bucket = @"examplebucket-1250000000";
    [corsRequest setFinishBlock:^(QCloudCORSConfiguration * _Nonnull result,
                                 NSError * _Nonnull error) {
       // List of CORS rules
       NSArray<QCloudCORSRule*> *rules = result.rules;
       
    }];
    [[QCloudCOSXMLService defaultCOSXML] GetBucketCORS:corsRequest];
    
    Note:

    For the complete sample, go to GitHub.

    Swift

    let  getBucketCorsRes = QCloudGetBucketCORSRequest.init();
    // Bucket name in the format of BucketName-APPID, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/cos5/bucket
    getBucketCorsRes.bucket = "examplebucket-1250000000";
    getBucketCorsRes.setFinish { (corsConfig, error) in
       if let corsConfig = corsConfig {
           // List of CORS rules
           let rules = corsConfig.rules
       } else {
           print(error!)
       }
    }
    QCloudCOSXMLService.defaultCOSXML().getBucketCORS(getBucketCorsRes);
    
    Note:

    For the complete sample, go to GitHub.

    Deleting CORS Configuration

    Feature description

    This API is used to delete the CORS configuration of a bucket.

    Sample code

    Objective-C

    QCloudDeleteBucketCORSRequest* deleteCORS = [QCloudDeleteBucketCORSRequest new];
    // Bucket name in the format of BucketName-APPID, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/cos5/bucket
    deleteCORS.bucket = @"examplebucket-1250000000";
    [deleteCORS setFinishBlock:^(id outputObject, NSError *error) {
       // You can get the header information returned by the server from outputObject
      NSDictionary* info = (NSDictionary *) outputObject;
    }];
    [[QCloudCOSXMLService defaultCOSXML] DeleteBucketCORS:deleteCORS];
    
    Note:

    For the complete sample, go to GitHub.

    Swift

    let deleteBucketCorsRequest = QCloudDeleteBucketCORSRequest.init();
    // Bucket name in the format of BucketName-APPID, which can be viewed in the COS console at https://console.intl.cloud.tencent.com/cos5/bucket
    deleteBucketCorsRequest.bucket = "examplebucket-1250000000";
    deleteBucketCorsRequest.finishBlock = {(result,error) in
       if let result = result {
           // You can get the header information returned by the server from result
       } else {
           print(error!)
       }
    }
    QCloudCOSXMLService.defaultCOSXML().deleteBucketCORS(deleteBucketCorsRequest);
    
    Note:

    For the complete sample, go to GitHub.

    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support