2026年9月30日 · 閱讀時間 6 分鐘

如何為儲存貯體的檔案連結使用自己的網域

像 https://files.example.com/report.pdf 這樣的連結看起來值得信任,換儲存服務供應商也不會失效,還不會洩露你的儲存貯體名稱。各大服務供應商都能透過 HTTPS 在你自己的網域上提供儲存貯體內容,只是做法各不相同。

Cloudflare R2

最簡單的一個。網域必須是與儲存貯體同一個 Cloudflare 帳號下的 zone。

  1. 開啟儲存貯體的 Settings,在 Custom Domains 下選擇 Add。
  2. 輸入 files.example.com,檢查 DNS 記錄,然後選擇 Connect Domain。

Cloudflare 會幫你建立 DNS 記錄和憑證。詳情請參考公開 R2 儲存貯體。

Amazon S3 搭配 CloudFront

S3 本身無法在自訂網域上提供 HTTPS,所以要在它前面放 CloudFront:

  1. 在 us-east-1 區域的 AWS Certificate Manager 中為 files.example.com 申請憑證(CloudFront 只使用該區域的憑證),並透過 DNS 驗證。
  2. 建立一個以你的儲存貯體為來源、使用 Origin access control 的 CloudFront 分佈,讓儲存貯體可以維持私人。套用 CloudFront 建議的儲存貯體政策。
  3. 把 files.example.com 加入為 alternate domain name,並選擇該憑證。
  4. 在你的 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 這種子網域會比較簡單。

加了自訂網域後,舊連結會失效嗎?

不會。服務供應商原本的位址會和自訂網域並存,繼續有效。只有之後建立的連結才會使用新網域。

可以換到其他服務供應商,同時保留我的連結嗎?

可以,這正是使用自己網域的最大好處之一。用相同的物件鍵把檔案拷貝到新的儲存貯體,把網域指向它,現有連結就能繼續使用。