約 5 分鐘
如何上傳檔案到 Cloudflare R2 並分享連結
Cloudflare R2 和 Aktar 是絕佳組合:沒有傳出流量費用,免費額度足以應付大多數截圖用途,自訂網域還能透過 Cloudflare 的網路提供服務。Aktar 有專屬的 R2 預設組合,所以你只需要帳號 ID、API 權杖和一個儲存貯體。
事前準備
- 已啟用 R2 的 Cloudflare 帳號
- 如果想讓連結使用自己的網域,需要一個託管在 Cloudflare 上的網域(選用)
- 已在 Mac 上安裝 Aktar
操作步驟
- 1
建立儲存貯體
在 Cloudflare 儀表板中打開 R2 Object Storage,按一下 Create bucket。取一個簡短的名稱,例如
screenshots,位置保留自動選擇即可。 - 2
為儲存貯體設定公開位址
打開儲存貯體的 Settings。在 Custom Domains 下,連接一個你在 Cloudflare 上管理的網域或子網域,例如
files.example.com。這是正式使用時的最佳選擇。如果只是想快速測試,也可以改為啟用 Public Development URL(
pub-….r2.dev)。不過 Cloudflare 會對這個 URL 限制速率,也不建議在正式環境中使用。 - 3
建立 API 權杖
回到 R2 概覽頁面,打開 Manage API tokens,建立一個具有 Object Read & Write 權限、僅限你的儲存貯體使用的權杖。複製 Access Key ID 和 Secret Access Key:私密金鑰只會顯示一次。
你的 Account ID 也顯示在同一頁,它同時也是 S3 端點
https://<ACCOUNT_ID>.r2.cloudflarestorage.com的開頭部分。 - 4
在 Aktar 中加入目的地
打開 Aktar 的設定 → 目的地 → 加入目的地,選擇 Cloudflare R2,並依照下表填寫欄位。Aktar 會根據你的帳號 ID 自動產生端點。
- 5
測試並儲存
按一下測試連線。Aktar 會上傳一個小型測試檔案,確認可以透過你的公開位址存取,然後再將其刪除。全部顯示綠燈後,按一下儲存,然後把第一個檔案拖到選單列圖像上。
Aktar 中的設定
在「設定 → 目的地 → 加入目的地」中輸入以下值。欄位名稱與 App 中一致。
| 欄位 | 範例值 |
|---|---|
| 服務供應商 | Cloudflare R2 |
| 目的地名稱 | Personal取任何你喜歡的名稱。 |
| 帳號 ID | 3f9a71c0e2b8…顯示在 R2 概覽頁面。 |
| 區域 | auto保留預設值。 |
| 存取金鑰 ID | a1b2c3d4…來自 R2 API 權杖。 |
| 私密存取金鑰 | ••••••••儲存在 macOS 鑰匙圈中。 |
| 儲存貯體 | screenshots |
| 公開基礎 URL | files.example.com你的自訂網域或 r2.dev URL。 |
| 物件路徑 | {year}/{month}/{uuid}.{ext}選用,請參閱檔案名稱和資料夾。 |
小技巧
- 把 API 權杖限制在 Aktar 使用的那一個儲存貯體。萬一權杖外洩,其他資源也不會受到影響。
- 自訂網域會由 Cloudflare 快取,熱門連結在全球各地都能快速載入,而且不需額外費用。
- 想讓資料夾井然有序?可以修改物件路徑,例如改成
shots/{date}/{filename}-{random}.{ext}。請參閱檔案名稱和資料夾。 - 想讓上傳項目在 1 到 30 天後自動刪除?使用具有 Admin Read & Write 權限的權杖,Aktar 就會幫你加入儲存貯體的生命週期規則。如果是 Object Read & Write 權杖,請在儲存貯體 Settings 的 Object Lifecycle Rules 中自行加入。請參閱會過期的上傳項目。
疑難排解
連結顯示 Access Denied 或 403
請確認公開基礎 URL 是你的自訂網域或 r2.dev URL。…r2.cloudflarestorage.com 端點僅供 API 使用,永遠不會公開提供檔案。詳情請參閱 Access Denied 錯誤。
「測試連線」顯示憑證無效
請使用 R2 API 權杖的 Access Key ID 和 Secret Access Key,而不是一般的 Cloudflare API 權杖或 Global API Key。也請確認帳號 ID 中沒有多餘的空格。
上傳正常,但連結載入很慢或受到速率限制
你可能正在使用 r2.dev 開發用 URL。正式使用時請連接自訂網域。
還是卡住了?瀏覽常見問題,或到 GitHub 上提問。