我正在將 CloudFront 與 Simple Storage Service (Amazon S3) 來源搭配使用。為什麼無法存取我的檔案?

1 分的閱讀內容
0

我正在使用 Amazon Simple Storage Service (Amazon S3) 儲存貯體作為 Amazon CloudFront 分發的來源,但無法存取或下載 S3 儲存貯體中的檔案。如何對此問題進行疑難排解?

解決方案

對「403 存取遭拒」錯誤進行疑難排解

如果 CloudFront 傳回「403 存取遭拒」錯誤,請參閲下方以您的使用案例為基礎的指南:

請檢查您的 CloudFront 地理限制

如果您的分發使用地理限制,請確認您未限制請求來源國家/地區。

如需詳細資訊,請參閲限制內容分發地理位置

請確認您未使用 S3 網站端點強制執行 HTTPS

Simple Storage Service (Amazon S3) 網站端點不支援 HTTPS。如果您使用 CLI、API 或 SDK 設定 CloudFront 分發,請確認您未使用 S3 網站端點來源強制執行 HTTPS。

若要檢查是否使用 HTTPS,請使用 GetDistributionConfig API 或 get-distribution-config CLI 命令來取得分發設定。如果 OriginProtocolPolicy 設定為 https-only,則將 OriginProtocolPolicy 修改為使用 http-only

若要使用 HTTPS,請將 CloudFront 與 S3 REST API 端點來源搭配使用。如需詳細資訊,請參閱如何使用 CloudFront 為 Simple Storage Service (Amazon S3) 儲存貯體提供 HTTPS 請求?

請確認您的 S3 物件小於 30 GB

HTTP GET、POST 和 PUT 請求允許的檔案大小上限為 30 GB。如果檔案大於 30 GB,您會收到 400 "BadRequest" 錯誤。

如需詳細資訊,請參閲分發的常規配額

請檢查 S3 物件金鑰名稱中的特殊字元

如果您在 S3 物件金鑰名稱中使用特殊字元,則可能需要特殊處理。如需詳細資訊,請參閲物件金鑰命名準則

請確認您未使用子目錄中的預設根物件

CloudFront 分發不會從子目錄傳回預設根物件,即使該物件在您的分發中設定。如需詳細資訊,請參閲指定預設根物件

作為因應措施,您可以使用 Lambda @Edge 從子目錄傳回預設根物件。如需詳細資訊,請參閱使用 Lambda@Edge 在 Simple Storage Service (Amazon S3) 後端 Amazon CloudFront 來源中實作預設目錄索引

請確認您未使用 S3 來源的主機標頭

對於 Simple Storage Service (Amazon S3) 來源,不支援根據主機標頭進行快取或轉傳主機標頭。如需詳細資訊,請參閲選取要快取所依據的標頭

對「請求的資源上不存在 'Access-Control-Allow-Origin' 標頭」錯誤進行疑難排解

請參閱如何解決 CloudFront 的「請求的資源上不存在 'Access-Control-Allow-Origin' 標頭」錯誤?中的解決步驟


相關資訊

對來源的錯誤回應進行疑難排解

AWS 官方
AWS 官方已更新 2 年前