簡體   English   中英

如何從本地開發應用程序引用S3存儲桶中的圖像?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM