Aktifkan hosting situs web statis dan konfigurasikan aturan pengalihan untuk bucket.
Prasyarat
Izin: Secara default, Akun Alibaba Cloud memiliki izin
oss:PutBucketWebsite. Untuk menjalankan perintah ini sebagai pengguna RAM atau pengguna Security Token Service (STS), berikan izinoss:PutBucketWebsite. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke pengguna RAM.Ikhtisar fitur: Sebelum mengaktifkan hosting situs web statis, tinjau Ikhtisar hosting situs web statis.
Sintaksis perintah
ossutil api put-bucket-website --bucket <value> --website-configuration <value> [flags]| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
--bucket | string | Ya | Nama bucket. |
--website-configuration | string | Ya | Konfigurasi situs web. Menerima format XML atau JSON. Gunakan awalan file:// untuk memuat konfigurasi dari file. |
Perintah ini sesuai dengan Operasi API PutBucketWebsite. Untuk deskripsi lengkap semua parameter, lihat PutBucketWebsite. Untuk daftar flag global yang didukung, lihat Opsi baris perintah global.
Struktur --website-configuration
Parameter --website-configuration menerima format XML dan JSON. Bidang tingkat atasnya adalah:
| Bidang | Deskripsi |
|---|---|
IndexDocument | Halaman utama default. Berisi Suffix (nama file, misalnya index.html), SupportSubDir (boolean), dan Type (string). |
ErrorDocument | Halaman error yang dikembalikan saat terjadi error HTTP. Berisi Key (nama file) dan HttpStatus (kode status HTTP). |
RoutingRules | Daftar terurut aturan routing. Setiap aturan berisi blok RuleNumber, Condition, dan Redirect. |
Struktur XML:
<WebsiteConfiguration>
<IndexDocument>
<Suffix>string</Suffix>
<SupportSubDir>boolean</SupportSubDir>
<Type>string</Type>
</IndexDocument>
<ErrorDocument>
<Key>string</Key>
<HttpStatus>string</HttpStatus>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<RuleNumber>integer</RuleNumber>
<Condition>
<KeyPrefixEquals>string</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>integer</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HttpRedirectCode>integer</HttpRedirectCode>
<RedirectType>string</RedirectType>
<MirrorPassQueryString>boolean</MirrorPassQueryString>
<MirrorFollowRedirect>boolean</MirrorFollowRedirect>
<MirrorHeaders>
<PassAll>boolean</PassAll>
<Pass>string</Pass>
...
<Remove>string</Remove>
...
<Set>
<Value>string</Value>
<Key>string</Key>
</Set>
...
</MirrorHeaders>
<MirrorURL>string</MirrorURL>
<EnableReplacePrefix>boolean</EnableReplacePrefix>
<ReplaceKeyWith>string</ReplaceKeyWith>
<PassQueryString>boolean</PassQueryString>
<MirrorCheckMd5>boolean</MirrorCheckMd5>
<Protocol>string</Protocol>
<HostName>string</HostName>
<TransparentMirrorResponseCodes>string</TransparentMirrorResponseCodes>
<ReplaceKeyPrefixWith>string</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
...
</RoutingRules>
</WebsiteConfiguration>Struktur JSON:
{
"IndexDocument": {
"Suffix": "string",
"SupportSubDir": boolean,
"Type": "string"
},
"ErrorDocument": {
"Key": "string",
"HttpStatus": "string"
},
"RoutingRules": {
"RoutingRule": [
{
"RuleNumber": integer,
"Condition": {
"KeyPrefixEquals": "string",
"HttpErrorCodeReturnedEquals": integer
},
"Redirect": {
"RedirectType": "string",
"HttpRedirectCode": integer,
"Protocol": "string",
"HostName": "string",
"PassQueryString": boolean,
"ReplaceKeyWith": "string",
"ReplaceKeyPrefixWith": "string",
"EnableReplacePrefix": boolean,
"MirrorURL": "string",
"MirrorPassQueryString": boolean,
"MirrorFollowRedirect": boolean,
"MirrorCheckMd5": boolean,
"TransparentMirrorResponseCodes": "string",
"MirrorHeaders": {
"PassAll": boolean,
"Pass": ["string", ...],
"Remove": ["string", ...],
"Set": [
{
"Key": "string",
"Value": "string"
},
...
]
}
}
},
...
]
}
}Contoh
Contoh berikut mengonfigurasi hosting situs web statis untuk bucket bernama examplebucket.
Konfigurasi dengan aturan routing
Contoh berikut menambahkan tiga aturan routing.
Menggunakan file konfigurasi XML
Buat website-configuration.xml:
<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
<SupportSubDir>true</SupportSubDir>
<Type>0</Type>
</IndexDocument>
<ErrorDocument>
<Key>error.html</Key>
<HttpStatus>404</HttpStatus>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<RuleNumber>1</RuleNumber>
<Condition>
<KeyPrefixEquals>abc/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<RedirectType>Mirror</RedirectType>
<PassQueryString>true</PassQueryString>
<MirrorURL>http://example.com/</MirrorURL>
<MirrorPassQueryString>true</MirrorPassQueryString>
<MirrorFollowRedirect>true</MirrorFollowRedirect>
<MirrorCheckMd5>false</MirrorCheckMd5>
<MirrorHeaders>
<PassAll>true</PassAll>
<Pass>myheader-key1</Pass>
<Pass>myheader-key2</Pass>
<Remove>myheader-key3</Remove>
<Remove>myheader-key4</Remove>
<Set>
<Key>myheader-key5</Key>
<Value>myheader-value5</Value>
</Set>
</MirrorHeaders>
</Redirect>
</RoutingRule>
<RoutingRule>
<RuleNumber>2</RuleNumber>
<Condition>
<KeyPrefixEquals>abc/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
<IncludeHeader>
<Key>host</Key>
<Equals>test.oss-cn-beijing-internal.aliyuncs.com</Equals>
</IncludeHeader>
</Condition>
<Redirect>
<RedirectType>AliCDN</RedirectType>
<Protocol>http</Protocol>
<HostName>example.com</HostName>
<PassQueryString>false</PassQueryString>
<ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<RuleNumber>3</RuleNumber>
<Redirect>
<ReplaceKeyWith>prefix/${key}</ReplaceKeyWith>
<HttpRedirectCode>302</HttpRedirectCode>
<EnableReplacePrefix>false</EnableReplacePrefix>
<PassQueryString>false</PassQueryString>
<Protocol>http</Protocol>
<HostName>example.com</HostName>
<RedirectType>External</RedirectType>
</Redirect>
</RoutingRule>
</RoutingRules>
</WebsiteConfiguration>Jalankan perintah:
ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.xmlMenggunakan file konfigurasi JSON
Buat website-configuration.json:
{
"IndexDocument": {
"Suffix": "index.html",
"SupportSubDir": "true",
"Type": "0"
},
"ErrorDocument": {
"Key": "error.html",
"HttpStatus": "404"
},
"RoutingRules": {
"RoutingRule": [
{
"RuleNumber": "1",
"Condition": {
"KeyPrefixEquals": "abc/",
"HttpErrorCodeReturnedEquals": "404"
},
"Redirect": {
"RedirectType": "Mirror",
"PassQueryString": "true",
"MirrorURL": "http://example.com/",
"MirrorPassQueryString": "true",
"MirrorFollowRedirect": "true",
"MirrorCheckMd5": "false",
"MirrorHeaders": {
"PassAll": "true",
"Pass": [
"myheader-key1",
"myheader-key2"
],
"Remove": [
"myheader-key3",
"myheader-key4"
],
"Set": {
"Key": "myheader-key5",
"Value": "myheader-value5"
}
}
}
},
{
"RuleNumber": "2",
"Condition": {
"KeyPrefixEquals": "abc/",
"HttpErrorCodeReturnedEquals": "404",
"IncludeHeader": {
"Key": "host",
"Equals": "test.oss-cn-beijing-internal.aliyuncs.com"
}
},
"Redirect": {
"RedirectType": "AliCDN",
"Protocol": "http",
"HostName": "example.com",
"PassQueryString": "false",
"ReplaceKeyWith": "prefix/${key}.suffix",
"HttpRedirectCode": "301"
}
},
{
"RuleNumber": "3",
"Condition": {
"HttpErrorCodeReturnedEquals": "404"
},
"Redirect": {
"RedirectType": "External",
"Protocol": "http",
"HostName": "example.com",
"PassQueryString": "false",
"ReplaceKeyWith": "prefix/${key}",
"HttpRedirectCode": "302",
"EnableReplacePrefix": "false"
}
}
]
}
}Jalankan perintah:
ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.jsonMenyertakan konfigurasi secara inline
ossutil api put-bucket-website --bucket examplebucket --website-configuration "{\"IndexDocument\":{\"Suffix\":\"index.html\",\"SupportSubDir\":\"true\",\"Type\":\"0\"},\"ErrorDocument\":{\"Key\":\"error.html\",\"HttpStatus\":\"404\"},\"RoutingRules\":{\"RoutingRule\":[{\"RuleNumber\":\"1\",\"Condition\":{\"KeyPrefixEquals\":\"abc/\",\"HttpErrorCodeReturnedEquals\":\"404\"},\"Redirect\":{\"RedirectType\":\"Mirror\",\"PassQueryString\":\"true\",\"MirrorURL\":\"http://example.com/\",\"MirrorPassQueryString\":\"true\",\"MirrorFollowRedirect\":\"true\",\"MirrorCheckMd5\":\"false\",\"MirrorHeaders\":{\"PassAll\":\"true\",\"Pass\":[\"myheader-key1\",\"myheader-key2\"],\"Remove\":[\"myheader-key3\",\"myheader-key4\"],\"Set\":{\"Key\":\"myheader-key5\",\"Value\":\"myheader-value5\"}}}},{\"RuleNumber\":\"2\",\"Condition\":{\"KeyPrefixEquals\":\"abc/\",\"HttpErrorCodeReturnedEquals\":\"404\",\"IncludeHeader\":{\"Key\":\"host\",\"Equals\":\"test.oss-cn-beijing-internal.aliyuncs.com\"}},\"Redirect\":{\"RedirectType\":\"AliCDN\",\"Protocol\":\"http\",\"HostName\":\"example.com\",\"PassQueryString\":\"false\",\"ReplaceKeyWith\":\"prefix/${key}.suffix\",\"HttpRedirectCode\":\"301\"}},{\"RuleNumber\":\"3\",\"Condition\":{\"HttpErrorCodeReturnedEquals\":\"404\"},\"Redirect\":{\"ReplaceKeyWith\":\"prefix/${key}\",\"HttpRedirectCode\":\"302\",\"EnableReplacePrefix\":\"false\",\"PassQueryString\":\"false\",\"Protocol\":\"http\",\"HostName\":\"example.com\",\"RedirectType\":\"External\"}}]}}"