静态网站

最后更新时间:2020-08-25 17:48:34

    简介

    本文档提供关于静态网站的 API 概览以及 SDK 示例代码。

    API 操作名 操作描述
    PUT Bucket website 设置静态网站 设置存储桶的静态网站配置
    GET Bucket website 查询静态网站配置 查询存储桶的静态网站配置
    DELETE Bucket website 删除静态网站配置 删除存储桶的静态网站配置

    SDK API 参考

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

    设置静态网站

    功能说明

    PUT Bucket website 用于为存储桶配置静态网站。

    示例代码

    Objective-C

    // 存储桶名称,格式为 BucketName-APPID
    NSString *bucket = @"examplebucket-1250000000";
    
    NSString *indexDocumentSuffix = @"index.html";
    NSString *errorDocKey = @"error.html";
    NSString *derPro = @"https";
    int errorCode = 451;
    NSString * replaceKeyPrefixWith = @"404.html";
    QCloudPutBucketWebsiteRequest *putReq = [QCloudPutBucketWebsiteRequest new];
    putReq.bucket = bucket;
    
    QCloudWebsiteConfiguration *config = [QCloudWebsiteConfiguration new];
    
    QCloudWebsiteIndexDocument *indexDocument = [QCloudWebsiteIndexDocument new];
    
    // 指定索引文档的对象键后缀。例如指定为index.html,那么当访问到存储桶的根目录时,会自动返回
    // index.html 的内容,或者当访问到article/目录时,会自动返回 article/index.html的内容
    indexDocument.suffix = indexDocumentSuffix;
    // 索引文档配置
    config.indexDocument = indexDocument;
    
    // 错误文档配置
    QCloudWebisteErrorDocument *errDocument = [QCloudWebisteErrorDocument new];
    errDocument.key = errorDocKey;
    // 指定通用错误文档的对象键,当发生错误且未命中重定向规则中的错误码重定向时,将返回该对象键的内容
    config.errorDocument = errDocument;
    
    // 重定向所有请求配置
    QCloudWebsiteRedirectAllRequestsTo *redir = [QCloudWebsiteRedirectAllRequestsTo new];
    redir.protocol  = derPro;
    // 指定重定向所有请求的目标协议,只能设置为 https
    config.redirectAllRequestsTo = redir;
    
    // 单条重定向规则配置
    QCloudWebsiteRoutingRule *rule = [QCloudWebsiteRoutingRule new];
    
    // 重定向规则的条件配置
    QCloudWebsiteCondition *contition = [QCloudWebsiteCondition new];
    contition.httpErrorCodeReturnedEquals = errorCode;
    rule.condition = contition;
    
    // 重定向规则的具体重定向目标配置
    QCloudWebsiteRedirect *webRe = [QCloudWebsiteRedirect new];
    webRe.protocol = derPro;
    
    // 指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,
    // 仅可在 Condition 为 KeyPrefixEquals 时设置
    webRe.replaceKeyPrefixWith = replaceKeyPrefixWith;
    rule.redirect = webRe;
    
    QCloudWebsiteRoutingRules *routingRules = [QCloudWebsiteRoutingRules new];
    routingRules.routingRule = @[rule];
    
    // 重定向规则配置,最多设置100条 RoutingRule
    config.rules = routingRules;
    putReq.websiteConfiguration  = config;
    
    [putReq setFinishBlock:^(id outputObject, NSError *error) {
        // outputObject 包含所有的响应 http 头部
        NSDictionary* info = (NSDictionary *) outputObject;
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] PutBucketWebsite:putReq];

    说明:

    更多完整示例,请前往 GitHub 查看。

    Swift

    let req = QCloudPutBucketWebsiteRequest.init();
    
    // 存储桶名称,格式为 BucketName-APPID
    req.bucket = "examplebucket-1250000000";
    
    let indexDocumentSuffix = "index.html";
    let errorDocKey = "error.html";
    let errorCode = 451;
    let replaceKeyPrefixWith = "404.html";
    
    let config = QCloudWebsiteConfiguration.init();
    
    let indexDocument = QCloudWebsiteIndexDocument.init();
    
    // 指定索引文档的对象键后缀。例如指定为index.html,那么当访问到存储桶的根目录时,会自动返回
    // index.html 的内容,或者当访问到article/目录时,会自动返回 article/index.html的内容
    indexDocument.suffix = indexDocumentSuffix;
    
    // 索引文档配置
    config.indexDocument = indexDocument;
    
    // 错误文档配置
    let errDocument = QCloudWebisteErrorDocument.init();
    errDocument.key = errorDocKey;
    
    // 指定通用错误文档的对象键,当发生错误且未命中重定向规则中的错误码重定向时,将返回该对象键的内容
    config.errorDocument = errDocument;
    
    // 重定向所有请求配置
    let redir = QCloudWebsiteRedirectAllRequestsTo.init();
    
    // 指定重定向所有请求的目标协议,只能设置为 https
    redir.protocol  = "https";
    config.redirectAllRequestsTo = redir;
    
    // 单条重定向规则配置
    let rule = QCloudWebsiteRoutingRule.init();
    
    // 重定向规则的条件配置
    let contition = QCloudWebsiteCondition.init();
    contition.httpErrorCodeReturnedEquals = Int32(errorCode);
    rule.condition = contition;
    
    // 重定向规则的具体重定向目标配置
    let webRe = QCloudWebsiteRedirect.init();
    webRe.protocol = "https";
    
    // 指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,
    // 仅可在 ConditionKeyPrefixEquals 时设置
    webRe.replaceKeyPrefixWith = replaceKeyPrefixWith;
    rule.redirect = webRe;
    
    let routingRules = QCloudWebsiteRoutingRules.init();
    routingRules.routingRule = [rule];
    
    // 重定向规则配置,最多设置100条 RoutingRule
    config.rules = routingRules;
    req.websiteConfiguration  = config;
    
    req.finishBlock = {(result,error) in
        if let result = result {
            // result 包含响应的 header 信息
        } else {
            print(error!);
        }
    }
    QCloudCOSXMLService.defaultCOSXML().putBucketWebsite(req);

    说明:

    更多完整示例,请前往 GitHub 查看。

    查询静态网站配置

    功能说明

    GET Bucket website 用于查询与存储桶关联的静态网站配置信息。

    示例代码

    Objective-C

    QCloudGetBucketWebsiteRequest *getReq = [QCloudGetBucketWebsiteRequest new];
    
    // 存储桶名称,格式为 BucketName-APPID
    getReq.bucket = @"examplebucket-1250000000";
    [getReq setFinishBlock:^(QCloudWebsiteConfiguration *  result,
                             NSError * error) {
    
        // 设置重定向规则,最多设置100条RoutingRule
        QCloudWebsiteRoutingRules *rules =result.rules;
    
        // 索引文档
        QCloudWebsiteIndexDocument *indexDocument = result.indexDocument;
    
        // 错误文档
        QCloudWebisteErrorDocument *errorDocument = result.errorDocument;
    
        // 重定向所有请求
        QCloudWebsiteRedirectAllRequestsTo *redirectAllRequestsTo = result.redirectAllRequestsTo;
    
    }];
    [[QCloudCOSXMLService defaultCOSXML] GetBucketWebsite:getReq];

    说明:

    更多完整示例,请前往 GitHub 查看。

    Swift

    let req = QCloudGetBucketWebsiteRequest.init();
    
    // 存储桶名称,格式为 BucketName-APPID
    req.bucket = "examplebucket-1250000000";
    
    req.setFinish {(result,error) in
        if let result = result {
            let rules = result.rules
        } else {
            print(error!);
        }
    }
    QCloudCOSXMLService.defaultCOSXML().getBucketWebsite(req);

    说明:

    更多完整示例,请前往 GitHub 查看。

    删除静态网站配置

    功能说明

    DELETE Bucket website 用于删除存储桶中的静态网站配置。

    示例代码

    Objective-C

    QCloudDeleteBucketWebsiteRequest *delReq = [QCloudDeleteBucketWebsiteRequest new];
    
    // 存储桶名称,格式为 BucketName-APPID
    delReq.bucket = @"examplebucket-1250000000";
    
    [delReq setFinishBlock:^(id outputObject, NSError *error) {
        // outputObject 包含所有的响应 http 头部
        NSDictionary* info = (NSDictionary *) outputObject;
    }];
    [[QCloudCOSXMLService defaultCOSXML] DeleteBucketWebsite:delReq];

    说明:

    更多完整示例,请前往 GitHub 查看。

    Swift

    let delReq = QCloudDeleteBucketWebsiteRequest.init();
    
    // 存储桶名称,格式为 BucketName-APPID
    delReq.bucket = "examplebucket-1250000000";
    
    delReq.finishBlock = {(result,error) in
        if let result = result {
            // result 包含响应的 header 信息
        } else {
            print(error!);
        }
    }
    
    QCloudCOSXMLService.defaultCOSXML().deleteBucketWebsite(delReq);

    说明:

    更多完整示例,请前往 GitHub 查看。

    Was this page helpful?

    本页内容是否解决了您的问题?

    • 完全没帮助
    • 文档较差
    • 文档一般
    • 文档不错
    • 文档很好
    反馈
    帮助