常見錯誤對照
連線失敗時先看這張表:它依服務商列出最常見的錯誤碼與處理方式。
從孤雲點過來時帶著錯誤碼的話,對應的那一行會自動標示。
先確認這三件事
儲存桶名稱完整(騰訊雲 COS 的桶名末尾帶 -APPID,要連後綴一起)。
端點是服務端點,不是主控台給的「存取網域」;端點只寫主機名,不帶桶名與路徑。
金鑰只授權了這個桶(不要用主帳號 / 根帳號金鑰)。
錯誤碼與處理
| 服務商 | 現象 / 錯誤碼 | 通常是什麼 | 怎麼辦 |
|---|---|---|---|
| 通用 | 403 AccessDenied | 金鑰沒權限,或策略裡的儲存桶名稱寫錯了 | 回對應服務商的教學頁看「最小權限策略」那一節 |
| 通用 | SignatureDoesNotMatch / InvalidAccessKeyId | 金鑰複製錯、缺字元,或 Secret 只顯示一次沒存下來 | 重新產生一對金鑰,整段複製 |
| 通用 | 測試連線並儲存通過,但上傳失敗 | 只給了讀權限(列出桶、讀物件) | 補上寫入與刪除物件的權限 |
| 通用 | 連不上或逾時,沒有錯誤碼 | 端點或位址方式不對 | 依教學頁給的端點規則填;確認端點裡沒有桶名或路徑 |
| 阿里雲 OSS | PublicEndpointForbidden | 桶在中國大陸,帳號是 2025-03-20 之後開通的 OSS,卻用了預設外網網域 | 改用已備案的自訂網域(走「中國大陸 + 備案全套」),或把桶放到海外地域 |
| 阿里雲 OSS | 綁定自訂網域後連不上 | DNS 的 CNAME 還沒生效,或憑證不對 | 等 DNS 生效(通常幾分鐘);確認憑證與網域相符,且位址方式選了「自訂網域 CNAME」 |
| 騰訊雲 COS | 403 AccessDenied(金鑰看起來是對的) | 桶名沒連 -APPID 後綴一起複製 | 回主控台複製完整桶名(形如 my-photos-1234567890) |
| 騰訊雲 COS | 端點填了主控台的「存取網域」 | 那個位址裡已經帶著桶名,是給瀏覽器用的 | 端點改成 https://cos.<地域>.myqcloud.com,桶名單獨填一格 |
| 騰訊雲 COS | SecretKey 當時沒存下來 | SecretKey 只在建立子使用者時顯示一次 | 在 CAM 給這個子使用者重新產生一對金鑰,孤雲裡兩個值一起換 |
| AWS S3 | AuthorizationHeaderMalformed / PermanentRedirect(301) | 端點裡的區域與桶實際所在區域不一致 | 端點改成桶所在區域的 https://s3.<區域>.amazonaws.com,區域那一格也改成同一個 |
| AWS S3 | InvalidAccessKeyId / SignatureDoesNotMatch,金鑰看著沒錯 | 帳號與桶不在同一個分區(全球區 aws 與中國區 aws-cn 不通用) | 確認桶和帳號在同一分區:中國區的桶要用中國區帳號的金鑰 |
| AWS S3 | 403 AccessDenied,策略也建了 | 策略裡兩處 ARN 的桶名寫錯,或桶級 ARN 多了斜線(桶級是 arn:aws:s3:::桶名,物件級才是 …/桶名/*) | 照 AWS S3 教學頁裡的策略原文改:桶級不帶斜線,物件級帶 /* |
表裡沒有的錯誤碼:對照服務商自己的錯誤碼文件,或在孤雲 App 裡回報。