tencent cloud

14天试用边缘安全加速平台 EO 限时免费

文档反馈

对象存储

静态网站

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

简介

本文档提供关于静态网站的 API 概览以及 SDK 示例代码。
API
操作名
操作描述
设置静态网站
设置存储桶的静态网站配置
查询静态网站配置
查询存储桶的静态网站配置
删除静态网站配置
删除存储桶的静态网站配置

SDK API 参考

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

设置静态网站

功能说明

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

示例代码

Objective-C
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
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 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
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";

// 指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,
// 仅可在 Condition 为 KeyPrefixEquals 时设置
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 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
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 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
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 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
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 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
delReq.bucket = "examplebucket-1250000000";

delReq.finishBlock = {(result,error) in
if let result = result {
// result 包含响应的 header 信息
} else {
print(error!);
}
}

QCloudCOSXMLService.defaultCOSXML().deleteBucketWebsite(delReq);
说明
更多完整示例,请前往 GitHub 查看。
联系我们

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

技术支持

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

7x24 电话支持
中国香港
+852 800 906 020 (免费)
美国
+1 844 606 0804 (免费)
英国
+44 808 196 4551 (免费)
加拿大
+1 888 605 7930 (免费)
澳大利亚
+61 1300 986 386 (免费)
EdgeOne 热线
+852 300 80699
更多本地服务热线陆续新增中