5

邁克爾哈特爾的Rails教程第11章結束時,我成功設法通過創建一個存儲桶,使用IAM設置用戶和授予用戶上傳到亞馬遜S3服務用戶使用AmazonS3FullAccess策略。它感覺骯髒和非常不安全,以允許我網站上的未知用戶完全訪問我的網站上的圖像上傳桶,我不知道我是否應該有這種感覺。我創建了一個自定義策略在用戶上傳圖片文件的載波正確s3權限

這是以下幾點:

 { 
     "Version": "2012-10-17", 
     "Statement": [ 
     { 
      "Sid": "Stmt1445501067518", 
      "Action": [ 
      "s3:GetObject", 
      "s3:PutObject" 
      ], 
      "Effect": "Allow", 
      "Resource": "arn:aws:s3:::bucketname" 
     } 
     ] 
    }

我在我的解決方案沒有信心,找不到谷歌搜索的最好方法任何答案去做這件事。我正在使用carrierwave(意圖爲我自己的項目使用carrierwave_direct),fog和mini_magick gem。

回答

4

允許用戶上傳文件到您的網站(即S3)的最好也可能是最安全的方式是使用基於瀏覽器的上傳。

這讓用戶無需通過服務器即可直接上傳到S3。在您的服務器上,您只需使用您的訪問密鑰創建請求籤名。

你可以閱讀更多關於它在這裏: Browser Based Uploads Using Post

我不熟悉carrierwave自己,但你會發現這個有用: Uploading directly to S3 in rails

+0

感謝您的答覆,我將檢查了這一點。 –