1

参照してください: 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許可する適切なアクションはありますか?

4

3 に答える 3

0

Paperclip は、ファイルをアップロードして提供するための優れたソリューションですが、提供する予定のすべてのコンテンツを既にアップロードしているようです。これは、S3 バケットの権限の問題です。

Amazon サンプル バケット ポリシー:
http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html

于 2013-05-26T18:10:07.590 に答える
0

画像のアップロードには paperclip gem を使用する必要があります。必要ないように思えることはわかっていますが、ユーザーがディスクにアップロードできるようにすることに関しては、専門家に任せたほうがよいでしょう。(なぜ車輪を再発明するのですか?)。

ペーパークリップを使用すると、次のようなことができます

User.profile_pic.url

また

User.images.first.image.url

確かにその通りだと思います。

于 2013-05-26T17:46:28.517 に答える