AWS: S3

我在想要不要給 AWS 文章一個獨立的專案,但想想還是先不要:畢竟 Web 開發也不會 AWS 服務全都用吧?


Amazon S3 就是放檔案的服務。所以要當圖床、上傳文件、還是放啥、甚至架靜態網站都隨意;如果只是從主控台放檔案也還算簡單,開個 Bucket 然後上傳就是。下次試試看用 API 接上去。

但檔案權限授權機制就很麻煩了。在 AWS 裡面有幾種管理機制:

  1. Block public access (bucket settings):封鎖存取:最優先。可以蓋過其他機制。
  2. Bucket policy:許可政策:以 JSON 設定整個 Bucket 的權限。
  3. Access control list (ACL):存取控制清單,需要去 Object Ownership 設定開啟才能用。特點是能特定特定檔案。
  4. Cross-origin resource sharing (CORS):設定跨來源資源分享。前後端都知道的 Access-Control-Allow-Origin

這邊就說最簡單的:讓網路所有人都能訪問檔案。

  1. 關掉所有 Block public access 設定。
  2. 編輯並複製以下檔案到 Bucket policy 的 Statement:
{
    "Sid": "AccessAllFiles",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": [
        "{ARN編號}",
        "{ARN編號}/*"
    ]
}

{ARN編號} 在 Bucket 清單應該能看到。Amazon Resource Name 啥的。

就這樣。

參考資料