本篇文章說明 AWS S3 的上傳下載方式,使用 postman 作為範例,設定限定上傳的權限,開放所有下載的權限

建立 Bucket

  1. 建立 Bucket
    1

  2. 填入名稱、區域
    1

  3. 其他使用預設值
    1
    1
    1
    1

建立資料夾

  1. 建立資料夾
    1

  2. 填入名稱 BUCKET_FOLDER (e.g. images)
    1

  3. 建立成功
    1

建立 IAM 使用者

  1. 到 IAM 儀表板
    1

  2. 點擊使用者
    1

  3. 填入使用者名稱 IAM_UESRNAME (e.g. vis-trainet),並選擇 Access Key
    1

  4. 附加現有的 Policy,選擇 S3 Full Access
    1

  5. Tag 留空
    1

  6. 下一步
    1

  7. 成功後會取得 Access key IDSecret access key,後續會使用到
    1

修改權限

  1. 修改 bucket setting,後面兩個選項關閉
    1

  2. 修改 bucket policy
    1

  3. 回到 IAM 取得 USER_ARN
    1

  4. 貼上 statement 並取代為自己的 User ARN,上面是開啟 Get 權限給匿名使用者,下面是開啟 Put 權限給 IAM 使用者,更多設定 Principal 參考
    1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "GetObjectStatement",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::BUCKET_NAME/BUCKET_FOLDER/*"
    }, {
    "Sid": "PutObjectStatement",
    "Effect": "Allow",
    "Principal": {
    "AWS": "USER_ARN"
    },
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::BUCKET_NAME/BUCKET_FOLDER/*"
    }
    ]
    }

上傳下載測試

  1. 使用 Postman 上傳,選擇 PUT 方法
  2. 上傳網址 https://BUCKET_NAME.s3.amazonaws.com/BUCKET_FOLDER/20200524_006.png
  3. Auth 選擇型態 AWS Signature 填入 IAM 使用者的 Access key IDSecret access key

1

  1. Body 選擇檔案後進行上傳
    1

  2. 測試剛才上傳位置
    1