2026年9月30日 · 閱讀時間 6 分鐘
如何為儲存貯體的檔案連結使用自己的網域
像 https://files.example.com/report.pdf 這樣的連結看起來值得信任,換儲存服務供應商也不會失效,還不會洩露你的儲存貯體名稱。各大服務供應商都能透過 HTTPS 在你自己的網域上提供儲存貯體內容,只是做法各不相同。
Cloudflare R2
最簡單的一個。網域必須是與儲存貯體同一個 Cloudflare 帳號下的 zone。
- 開啟儲存貯體的 Settings,在 Custom Domains 下選擇 Add。
- 輸入
files.example.com,檢查 DNS 記錄,然後選擇 Connect Domain。
Cloudflare 會幫你建立 DNS 記錄和憑證。詳情請參考公開 R2 儲存貯體。
Amazon S3 搭配 CloudFront
S3 本身無法在自訂網域上提供 HTTPS,所以要在它前面放 CloudFront:
- 在 us-east-1 區域的 AWS Certificate Manager 中為
files.example.com申請憑證(CloudFront 只使用該區域的憑證),並透過 DNS 驗證。 - 建立一個以你的儲存貯體為來源、使用 Origin access control 的 CloudFront 分佈,讓儲存貯體可以維持私人。套用 CloudFront 建議的儲存貯體政策。
- 把
files.example.com加入為 alternate domain name,並選擇該憑證。 - 在你的 DNS 服務商建立一筆 CNAME,把
files指向分佈的d….cloudfront.net位址。
S3 靜態網站端點也接受 CNAME,但只支援一般 HTTP,而且儲存貯體名稱必須和網域完全相同,所以 CloudFront 是比較好的做法。
DigitalOcean Spaces
為 Space 啟用 CDN,並在它的設定中加入 custom subdomain。如果你網域的 DNS 由 DigitalOcean 管理,它可以自動核發 Let's Encrypt 憑證;否則請上傳你自己的憑證。之後檔案就會從 https://files.example.com/key 提供。
Backblaze B2
B2 會以 https://f003.backblazeb2.com/file/your-bucket/key 這樣的 URL 提供公開檔案。要使用自己的網域,常見做法是透過 Cloudflare:加入一筆經過代理的 CNAME,把 files.example.com 指向你儲存貯體的 f00X.backblazeb2.com 主機,再加一條改寫規則,在路徑前面加上 /file/your-bucket。Backblaze 有提供這種設定的說明文件,而且透過 Cloudflare 提供的流量不收下載費用。
網域設定好之後
- 在瀏覽器的私密視窗中開啟
https://files.example.com/<key>的檔案,確認它是公開的。 - 在所有產生連結的地方都把這個網域當作基礎 URL,讓你分享的每個連結都用上它。
- 上傳仍然透過服務供應商的 API 端點進行。自訂網域只用來讀取。
常見問題
可以用根網域,而不是子網域嗎?
在 Cloudflare R2 上通常可以,它能綁定 apex 網域。其他大多數設定都仰賴 CNAME,用 files.example.com 這種子網域會比較簡單。
加了自訂網域後,舊連結會失效嗎?
不會。服務供應商原本的位址會和自訂網域並存,繼續有效。只有之後建立的連結才會使用新網域。
可以換到其他服務供應商,同時保留我的連結嗎?
可以,這正是使用自己網域的最大好處之一。用相同的物件鍵把檔案拷貝到新的儲存貯體,把網域指向它,現有連結就能繼續使用。