[英]How can I take image from the amazon s3 bucket to my local system using rails?
[英]How do I reference images in my S3 bucket from local dev app?
請參閱: 在Amazon S3上,我可以賦予單個對象下載權,但不能為整個存儲桶提供該問題的下一個發展。
我的所有圖片都已上傳到存儲桶中。 我正在嘗試按照https://devcenter.heroku.com/articles/s3的指示通過其URL訪問它們。 我當然想確保在將最新更改上傳到實時應用程序之前可以訪問它們。 據我所知,我已經適當地設置了yml,但是當我訪問在WEBRICK上本地運行的站點時,圖像未加載。 我尚未對rubygems目錄中的AWS文件進行任何更改。 這是我用來顯示圖像的參考示例:
<%= image_tag("https://s3-us-west-2.amazonaws.com/mybucket/someimage.jpg") %>
誰能給我一些指示? 我知道有將代碼添加到所包含的AWS文件中的說明,但是我對它們的理解不夠深,無法深入其中。 謝謝。
我在存儲桶策略中添加了以下內容:
{
"Id": "somepolicy",
"Statement": [
{
"Sid": "someid",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::myapp/mykey",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
我仍然無法訪問圖像。 GetObject
是允許的適當操作嗎?
您應該使用回形針gem進行圖像上傳。 我知道這似乎沒有必要,但是在允許用戶上傳到磁盤時,最好將它留給專業人員。 (為什么要重新發明輪子?)。
使用回形針,您可以執行以下操作
User.profile_pic.url
要么
User.images.first.image.url
我當然認為這是要走的路。
回形針是上傳和提供文件的絕佳解決方案,但聽起來您已經上傳了要提供的所有內容。 這是S3存儲桶的權限問題。
Amazon Sample存儲桶策略:
http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html
非常感謝在這個問題上與我合作的所有人,尤其是@LarryMcKenzie。 問題在於,您需要在上傳時設置文件權限,並且無法批量分配存儲桶中所有對象的權限。
解決方案:我將所有人的“打開/下載”標志設置為true,重新上傳了所有圖像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.