出於安全考慮,當您通過Bucket預設網域名稱訪問某些檔案時,可能會觸發強制下載或禁止下載。如果您希望在瀏覽器中正常預覽或下載這些檔案,您需要為Bucket綁定自訂網域名,並通過自訂網域名訪問OSS檔案。綁定自訂網域名不會影響Bucket預設網域名稱,您可以繼續通過Bucket預設網域名稱訪問OSS檔案。
使用情境
預覽檔案:出於安全考慮,通過OSS預設Bucket網域名稱訪問檔案時,OSS會強制增加下載回應標頭,導致瀏覽器強制下載檔案。使用自訂網域名訪問檔案不會強制增加下載回應標頭,從而實現在瀏覽器中預覽檔案。關於使用OSS的預設Bucket網域名稱訪問檔案,觸發自動下載的生效時間和生效對象,請參見附錄:強制下載命中的x-oss-ec規則。
訪問.apk或.ipa檔案:出於安全考慮,通過OSS預設Bucket網域名稱訪問.apk或.ipa檔案時,OSS會返回400錯誤,錯誤碼為ApkDownloadForbidden。使用自訂網域名訪問.apk或.ipa檔案不會被阻斷。關於使用OSS預設Bucket網域名稱訪問尾碼為.apk或者.ipa檔案,觸發禁止訪問的生效時間和生效對象,請參見附錄:報錯ApkDownloadForbidden。
品牌形象和專業性:將自訂網域名綁定到OSS Bucket,提供個人化網域名稱,增強品牌形象和專業性,增加使用者信任度。
防止網域名稱被攔截:一些應用或平台可能會對Bucket預設網域名稱進行攔截。您可以為Bucket綁定自訂網域名,以確保您的OSS Bucket中的資源能夠被正常訪問。
訪問方便性:使用自訂網域名訪問OSS Bucket,方便易記,相比使用OSS預設網域名稱,更加簡潔友好,輕鬆訪問和分享資源。
連結的持久性:綁定自訂網域名到OSS Bucket後,即使後續儲存位置或服務有變化,使用者仍可使用相同網域名稱訪問資源,確保連結的持久性,長期可訪問和使用儲存資源。
使用限制
不支援綁定中文網域名稱。
網域名稱未在圖片處理綁定。
每個網域名稱只能綁定至一個Bucket。
每個Bucket最多可以綁定100個網域名稱。
通過OSS管理主控台綁定自訂網域名時,不允許綁定泛網域名稱(將網域名稱首碼設定為*,從而將主網域名稱的所有子網域名稱都指向Bucket預設網域名稱)。通過CDN加速OSS時,允許綁定泛網域名稱,但該網域名稱不會在OSS管理主控台顯示。
前提條件
已建立Bucket。具體步驟,請參見建立儲存空間。
註冊網域名。支援綁定非阿里雲註冊的網域名稱。如果您還未註冊網域名稱,您可以在阿里雲網域名稱服務 (DNS)平台註冊網域名稱。具體步驟,請參見註冊網域名稱。
如果要綁定的Bucket在中國內地,確保網域名稱已備案,且帳號已實名認證。如何備案和實名認證,請參見ICP備案流程、阿里雲帳號實名登記常見問題。
操作步驟
步驟一:綁定自訂網域名
根據網域名稱所屬服務提供者(可在網域名稱資訊查詢(WHOIS)頁面查詢)和所屬帳號(可在Alibaba Cloud DNS控制台查詢),參考對應的步驟將網域名稱綁定至OSS Bucket。
綁定當前阿里雲帳號註冊的網域名稱
將當前阿里雲帳號註冊的網域名稱,綁定至OSS Bucket的操作步驟如下:
登入OSS管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
在左側導覽列,選擇Bucket 配置>網域名稱管理。
在網域名稱管理頁面,單擊綁定域名。
在綁定域名面板,輸入不帶協議的自訂網域名,例如
static.example.com
,然後單擊確認綁定。添加CNAME記錄,將自訂網域名
static.example.com
解析至被綁定的Bucket的預設外網網域名稱。自動添加
在綁定域名面板,開啟自動添加 CNAME 記錄。
開啟後,Alibaba Cloud DNS會自動添加一條CNAME記錄。樣本如下:
手動添加
如果沒有在綁定域名面板,開啟自動添加 CNAME 記錄,您需要在Alibaba Cloud DNS控制台手動添加一條CNAME記錄,否則綁定的自訂網域名不會生效。
在公網DNS解析 > 權威網域名稱解析,單擊目標網域名稱右側的解析設定。
單擊添加記錄,填寫網域名稱解析資訊。
參數
說明
樣本值
記錄類型
選擇CNAME記錄將網域名稱解析指向另一個網域名稱
CNAME
主機記錄
填寫要綁定的網域名稱的首碼。
static
解析請求來源
解析網域名稱時使用的線路。 建議選擇預設,系統將自動選擇最佳線路。
預設
記錄值
填寫Bucket的外網訪問網域名稱。Bucket網域名稱的結構為<bucketname>.<endpoint>。關於不同地區的外網Endpoint,請參見OSS地區和訪問網域名稱。
examplebucket.oss-cn-hangzhou.aliyuncs.com
TTL
網域名稱的更新周期,保留預設值即可。
說明生效TTL的時間有一定的延遲,請以實際為準。
10分鐘
單擊確定。
完成後,Alibaba Cloud DNS會出現一條CNAME記錄。樣本如下:
綁定其他阿里雲帳號註冊的網域名稱
將阿里雲A帳號註冊的網域名稱,綁定至阿里雲B帳號的OSS Bucket的操作步驟如下:
使用阿里雲B帳號,擷取TXT記錄的主機記錄和記錄值。
登入OSS管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
在左側導覽列,選擇Bucket 配置>網域名稱管理。
在網域名稱管理頁面,單擊綁定域名。
在綁定域名面板,輸入不帶協議的要綁定的阿里雲A帳號的自訂網域名,例如
static.example.com
,然後複製頁面顯示的主機記錄和記錄值。
使用阿里雲A帳號,添加TXT記錄。
在網域名稱解析列表中,單擊目標網域名稱右側的解析設定。
單擊添加記錄,填寫網域名稱解析資訊。
參數
說明
樣本值
記錄類型
選擇網域名稱指向的類型為TXT。
TXT
主機記錄
阿里雲Alibaba Cloud DNS已自動幫你填寫了主網域名稱。因此,填寫時,不需要手動填寫主網域名稱部分。
如果綁定的是主網域名稱,填寫
_dnsauth
。例如網域名稱為example.com
,填寫_dnsauth
。如果綁定的是子網域名稱,填寫
_dnsauth.<網域名稱首碼>
。例如網域名稱為static.example.com
,填寫_dnsauth.static
。
_dnsauth.static
解析請求來源
解析網域名稱時使用的線路。 建議選擇預設,系統將自動選擇最佳線路。
預設
記錄值
填寫使用阿里雲B帳號擷取的TXT記錄中的CnameToken。
b0d777f7ccddeae93358d908ed59****
TTL
網域名稱的更新周期,保留預設值即可。
說明生效TTL的時間有一定的延遲,請以實際為準。
10分鐘
單擊確定。
使用阿里雲B帳號,在OSS控制台的綁定域名面板,單擊驗證網域名稱所有權並綁定。
使用阿里雲A帳號,添加CNAME記錄。
在網域名稱解析列表中,單擊目標網域名稱右側的解析設定。
單擊添加記錄,填寫網域名稱解析資訊。
參數
說明
樣本值
記錄類型
選擇網域名稱指向的類型為CNAME。
CNAME
主機記錄
根據網域名稱首碼填寫主機記錄。
如果是主網域名稱,例如
example.com
,輸入@。如果是子網域名稱,輸入欄位名的首碼。例如網域名稱為
static.example.com
,輸入static。
static
解析請求來源
解析網域名稱時使用的線路。 建議選擇預設,系統將自動選擇最佳線路。
預設
記錄值
填寫Bucket的外網訪問網域名稱。Bucket網域名稱的結構為<bucketname>.<endpoint>。關於不同地區的外網Endpoint,請參見OSS地區和訪問網域名稱。
examplebucket.oss-cn-hangzhou.aliyuncs.com
TTL
網域名稱的更新周期,保留預設值即可。
說明生效TTL的時間有一定的延遲,請以實際為準。
10分鐘
單擊確定。
綁定非阿里雲帳號註冊的網域名稱
將在其他網域名稱服務 (DNS)供應商註冊的網域名稱,綁定至OSS Bucket的操作步驟如下:
在阿里雲OSS,產生TXT記錄的主機記錄和記錄值。
登入OSS管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
在左側導覽列,選擇Bucket 配置>網域名稱管理。
在網域名稱管理頁面,單擊綁定域名。
在綁定域名面板,輸入不帶協議的在其他網域名稱服務 (DNS)供應商註冊的網域名稱,例如
static.example.com
,然後複製頁面顯示的主機記錄和記錄值。
在網域名稱服務 (DNS)供應商的DNS解析平台,參考下表添加TXT記錄。
參數
說明
樣本值
記錄類型
選擇網域名稱指向的類型為TXT。
TXT
主機記錄
如果其他網域名稱服務 (DNS)供應商的DNS解析平台已自動幫你填寫了主網域名稱,填寫時,不需要手動填寫主網域名稱部分。
如果綁定的是主網域名稱,填寫
_dnsauth
。例如網域名稱為example.com
,填寫_dnsauth
。如果綁定的是子網域名稱,填寫
_dnsauth.<網域名稱首碼>
。例如網域名稱為static.example.com
,填寫_dnsauth.static
。
_dnsauth.static
記錄值
填寫從阿里雲OSS擷取的TXT記錄中的CnameToken。
b0d777f7ccddeae93358d908ed59****
在阿里雲OSS控制台的綁定域名面板,單擊驗證網域名稱所有權並綁定。
在網域名稱服務 (DNS)供應商的DNS解析平台,參考下表添加CNAME記錄。
參數
說明
樣本值
記錄類型
選擇網域名稱指向的類型為CNAME。
CNAME
主機記錄
根據網域名稱首碼填寫主機記錄。
如果是主網域名稱,例如
example.com
,輸入@。如果是子網域名稱,輸入欄位名首碼。例如網域名稱為
static.example.com
,輸入static。
static
記錄值
填寫Bucket的外網訪問網域名稱。Bucket網域名稱的結構為<bucketname>.<endpoint>。關於不同地區的外網Endpoint,請參見OSS地區和訪問網域名稱。
examplebucket.oss-cn-hangzhou.aliyuncs.com
步驟二:驗證自訂網域名
綁定自訂網域名後,當使用者通過自訂網域名發起請求時,該請求會通過 DNS 解析到 Bucket 預設網域名稱。您可以使用nslookup
或dig
命令來驗證自訂網域名解析是否生效。
nslookup
將static.example.com
替換為您要查詢的網域名稱,然後執行以下命令。
nslookup -type=CNAME static.example.com
網域名稱解析結果顯示綁定的Bucket的外網訪問網域名稱,說明自訂網域名解析已生效。
dig
將static.example.com
替換為您要查詢的網域名稱,然後執行以下命令。
dig CNAME static.example.com
網域名稱解析結果顯示綁定的Bucket的外網訪問網域名稱,說明自訂網域名解析已生效。
步驟三:使用自訂網域名
自訂網域名解析生效後,您可以使用HTTP協議和自訂網域名構造包含簽名和有效期間的URL,URL的格式為http://YourDomain/ObjectName?簽名參數
,然後使用該URL訪問OSS檔案。
擷取簽名URL。
使用OSS控制台
登入OSS管理主控台。
單擊Bucket列表,然後單擊目標Bucket名稱。
在左側導覽列,選擇
。在檔案清單頁面,單擊目標檔案名稱。
在詳情面板的自有網域名稱,選擇綁定的自訂網域名,其他保持預設值,然後單擊複製檔案URL。
使用圖形化管理工具ossbrowser
ossbrowser支援Object層級的操作與控制台支援的操作類似,請按照ossbrowser介面指引完成擷取簽名URL的操作。如何下載ossbrowser,請參見圖形化管理工具ossbrowser 2.0(預覽版)。
使用自訂網域名登入ossbrowser。
擷取檔案URL。
使用阿里雲SDK
使用自訂網域名建立OssClient並產生簽名URL。
Java
import com.aliyun.oss.*; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.common.comm.SignVersion; import java.net.URL; import java.util.Date; public class Demo { public static void main(String[] args) throws Throwable { // yourEndpoint請填寫您的自訂網域名。例如http://static.example.com。 String endpoint = "http://static.example.com"; // Endpoint請填寫您對應的Region資訊,例如cn-hangzhou。 String region = "cn-hangzhou"; // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請先配置環境變數。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // 建立OSSClient執行個體。 ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); // 請注意,設定true開啟CNAME選項。 clientBuilderConfiguration.setSupportCname(true); // 顯式聲明使用 V4 簽名演算法 clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // 設定簽名URL到期時間,單位為毫秒。本樣本以設定到期時間為1小時為例。 Date expiration = new Date(new Date().getTime() + 3600 * 1000L); // 產生以GET方法訪問的簽名URL。本樣本沒有額外要求標頭,其他人可以直接通過瀏覽器訪問相關內容。 String bucketName = "examplebucket"; String objectName = "demo.png"; URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration); System.out.println(url); } catch (OSSException oe) { System.out.println("Caught an OSSException, which means your request made it to OSS, " + "but was rejected with an error response for some reason."); System.out.println("Error Message:" + oe.getErrorMessage()); System.out.println("Error Code:" + oe.getErrorCode()); System.out.println("Request ID:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Caught an ClientException, which means the client encountered " + "a serious internal problem while trying to communicate with OSS, " + "such as not being able to access the network."); System.out.println("Error Message:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
Python
# -*- coding: utf-8 -*- import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider # 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider()) # 填寫Endpoint對應的Region資訊,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數 region = "cn-hangzhou" # 填寫自訂網域名,例如static.example.com。 endpoint = 'http://static.example.com' # yourBucketName填寫儲存空間名稱。 bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region, is_cname=True) # 填寫Object完整路徑,例如exampledir/exampleobject.txt。Object完整路徑中不能包含Bucket名稱。 object_name = 'exampledir/exampleobject.txt' # 產生下載檔案的簽名URL,有效時間為600秒。 # 產生簽名URL時,OSS預設會對Object完整路徑中的正斜線(/)進行轉義,從而導致產生的簽名URL無法直接使用。 # 設定slash_safe為True,OSS不會對Object完整路徑中的正斜線(/)進行轉義,此時產生的簽名URL可以直接使用。 url = bucket.sign_url('GET', object_name, 600, slash_safe=True, params=params) print('簽名URL的地址為:', url)
Node.js
const OSS = require("ali-oss"); // 定義一個產生簽名 URL 的函數 async function generateSignatureUrl(fileName) { // 擷取簽名URL const client = await new OSS({ // 使用自訂網域名作為Endpoint。 endpoint: 'http://static.example.com', // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 accessKeyId: process.env.OSS_ACCESS_KEY_ID, accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, bucket: 'examplebucket', // yourregion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。 region: 'oss-cn-hangzhou', authorizationV4: true, cname: true }); return await client.signatureUrlV4('GET', 3600, { headers: {} // 請根據實際發送的要求標頭設定此處的要求標頭 }, fileName); } // 調用函數並傳入檔案名稱 generateSignatureUrl('yourFileName').then(url => { console.log('Generated Signature URL:', url); }).catch(err => { console.error('Error generating signature URL:', err); });
PHP
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; use OSS\Http\RequestCore; use OSS\Http\ResponseCore; use OSS\Credentials\EnvironmentVariableCredentialsProvider; // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 $provider = new EnvironmentVariableCredentialsProvider(); // yourEndpoint填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為http://static.example.com。 $endpoint = "http://static.example.com"; // 填寫Bucket名稱。 $bucket= "examplebucket"; // 填寫不包含Bucket名稱在內的Object完整路徑。 $object = "exampleobject.txt"; // 指定簽名URL的到期時間為600s(最長可達32400s)。 $timeout = 600; try { $config = array( "provider" => $provider, "endpoint" => $endpoint, 'signatureVersion'=>OssClient::OSS_SIGNATURE_VERSION_V4, "cname" => true, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // 產生簽名URL。 $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET"); print_r($signedUrl); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; }
Go
package main import ( "context" "flag" "log" "time" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) // 定義全域變數 var ( region string // 儲存地區 bucketName string // 儲存空間名稱 objectName string // 對象名稱 ) // init函數用於初始化命令列參數 func init() { flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.") flag.StringVar(&objectName, "object", "", "The name of the object.") } func main() { // 解析命令列參數 flag.Parse() // 檢查bucket名稱是否為空白 if len(bucketName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, bucket name required") } // 檢查region是否為空白 if len(region) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, region required") } // 檢查object名稱是否為空白 if len(objectName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, object name required") } // 載入預設配置並設定憑證提供者和地區 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion(region). WithEndpoint("http://static.example.com"). WithUseCName(true) // 建立OSS用戶端 client := oss.NewClient(cfg) // 產生GetObject的預簽名URL result, err := client.Presign(context.TODO(), &oss.GetObjectRequest{ Bucket: oss.Ptr(bucketName), Key: oss.Ptr(objectName), //RequestPayer: oss.Ptr("requester"), // 指定要求者身份 }, oss.PresignExpires(10*time.Minute), ) if err != nil { log.Fatalf("failed to get object presign %v", err) } log.Printf("request method:%v\n", result.Method) log.Printf("request expiration:%v\n", result.Expiration) log.Printf("request url:%v\n", result.URL) if len(result.SignedHeaders) > 0 { //當返回結果包含簽名頭時,使用簽名URL發送GET請求時也包含相應的要求標頭,以免出現不一致,導致請求失敗和簽名錯誤 log.Printf("signed headers:\n") for k, v := range result.SignedHeaders { log.Printf("%v: %v\n", k, v) } } }
使用命令列工具ossutil
使用自訂網域名通過presign(產生預簽名URL)命令組建檔案的簽名URL。
ossutil presign oss://examplebucket/exampleobject.txt --endpoint "http://static.example.com” --addressing-style "cname"
如需ossutil命令自動使用自訂網域名,而無需每次在命令中手動指定自訂網域名,您可以在設定檔中添加自訂網域名,
在瀏覽器中訪問簽名URL。
相關API
關於建立網域名稱所有權驗證所需的CnameToken的介面,請參見CreateCnameToken。
關於擷取已建立的CnameToken的介面,請參見GetCnameToken。
關於為某個Bucket綁定自訂網域名的介面,請參見PutCname。
關於查詢某個Bucket下綁定的所有自訂網域名的介面,請參見ListCname。
關於刪除某個Bucket已綁定的自訂網域名的介面,請參見DeleteCname。
關於使用阿里雲解析DNS添加TXT解析記錄或CNAME解析記錄的介面,請參見AddDomainRecord - 根據傳入參數添加解析記錄。
後續操作
通過HTTPS協議訪問OSS檔案
自訂網域名在未配置SSL認證的情況下,預設不支援HTTPS協議訪問。通過HTTPS協議訪問自訂網域名時,瀏覽器會顯示不安全連線警告。為了通過HTTPS協議訪問OSS檔案,需要為自訂網域名配置認證。
使用不帶簽名的長期有效URL訪問OSS檔案
如需擷取不存在簽名和到期時間的URL,即URL的格式為http://YourDomainName/ObjectName
,您需要將檔案設定為公用讀取。設定為公用讀取後,互連網上任何使用者都可以訪問該檔案,這有可能造成您資料的外泄以及費用激增,建議您使用包含簽名和到期時間的URL。
您可以通過以下兩種方式將檔案設定為公用讀取:
設定檔案為公用讀取:將 OSS 檔案的使用權限設定為公用讀取。在這種情況下,檔案的 URL 將沒有有效期間,任何人都可以訪問。為了防止檔案被其他網站盜用,您需要在 OSS 中配置防盜鏈。
CDN加速OSS資源:保持 OSS 檔案的許可權為私人,通過 CDN 提供公用讀取訪問。在這種情況下,檔案的 URL 將沒有有效期間,任何人都可以訪問。為了防止檔案被其他網站盜用,您需要在 CDN 配置防盜鏈。
防止OSS檔案被其他網站盜用
預設情況下,任何網站都可以顯示您的OSS檔案,這可能導致額外的請求費用和下行流量費用。您可以通過防盜鏈,設定Referer黑名單或白名單來限制訪問來源。配置防盜鏈後,未授權的網站將無法顯示您的OSS檔案,同時失敗的請求也不會產生請求費用和下行流量費用。
使用OSS託管靜態網站
如果您使用OSS作為靜態網站的伺服器,直接儲存和提供靜態檔案(如HTML、CSS、JavaScript等),以便使用者通過互連網訪問這些內容,除了綁定自訂網域名外,您還需要為Bucket設定靜態網站託管。
提升OSS檔案在不同地區的下載速度
OSS Bucket 中的檔案儲存體在某個地區(例如杭州)。為了提高不同地區使用者下載 OSS 檔案的速度,您可以使用CDN加速OSS。開啟CDN加速後,OSS 檔案會分發到各個地區的 CDN 緩衝節點。使用者在訪問檔案時,可以從離他們更近的緩衝節點擷取內容,從而有效提升下載速度。
在使用 CDN 加速 OSS 的情況下,建議將 CDN 網域名稱用於檔案下載,而對於檔案上傳,您可以繼續使用原有的 Bucket 預設網域名稱。
提升OSS檔案的遠距離傳輸速度
OSS Bucket 中的檔案儲存體在某個地區(例如杭州)。非中國內地的使用者訪問時,可能因傳輸距離較遠導致上傳和下載體驗非常差。為提升 OSS 檔案的遠距離傳輸速度,您可以開啟傳輸加速,將自訂網域名綁定到 OSS 的傳輸加速網域名稱,而不是Bucket預設網域名稱。