質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

851閲覧

RailsのMicropostのアップロードで、AWS S3に画像データが保存できず、エラーになってしまう。

helo

総合スコア36

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/05/24 11:38

前提・実現したいこと

現在、Ruby on Railsのチュートリアルで第13章を終えてHerokuにアップロードしたのですが、テキストは問題ないのですが画像が
保存されず、herokuエラーが出てしまいます。いろいろ他の方の投稿やサイトをチェックしているのですが、複雑でわからず困っています。
バケットポリシーの設定も分りづらく、詳しい方いらっしゃいましたらアドバイスをお願いします。

発生している問題・エラーメッセージ

以下、heroku logs です。 <message>Access Denied</message>と出ているのでアクセス拒否されてるかとは思うのですが・・。 9SLILcsAveIYonPPSAAimWboQG9wMcK1ZVPvVyBZi4P+oPen/L5edCU/kldSWBNGcS5Tg==", "micropost"=>{"content"=>"????\r\n", "picture"=>#<ActionDispatch::Http::UploadedFile:0x00005582daa99130 @tempfile=#<Tempfile:/tmp/RackMultipart20200524-4-10t908m.JPG>, @original_filename="IMG_1485.JPG", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"micropost[picture]\"; filename=\"IMG_1485.JPG\"\r\nContent-Type: image/jpeg\r\n">}, "commit"=>"Post"} 2020-05-24T11:07:52.158888+00:00 app[web.1]: D, [2020-05-24T11:07:52.158821 #4] DEBUG -- : [01104a90-9238-4b92-93ad-ac2461c70685] User Load (1.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 101], ["LIMIT", 1]] 2020-05-24T11:07:52.245948+00:00 app[web.1]: D, [2020-05-24T11:07:52.245826 #4] DEBUG -- : [01104a90-9238-4b92-93ad-ac2461c70685] (1.1ms) BEGIN 2020-05-24T11:07:52.249838+00:00 app[web.1]: D, [2020-05-24T11:07:52.249732 #4] DEBUG -- : [01104a90-9238-4b92-93ad-ac2461c70685] SQL (2.0ms) INSERT INTO "microposts" ("content", "user_id", "created_at", "updated_at", "picture") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["content", "????\r\n"], ["user_id", 101], ["created_at", "2020-05-24 11:07:52.247002"], ["updated_at", "2020-05-24 11:07:52.247002"], ["picture", "IMG_1485.JPG"]] 2020-05-24T11:07:56.369267+00:00 heroku[router]: at=info method=POST path="/microposts" host=salty-refuge-73442.herokuapp.com request_id=01104a90-9238-4b92-93ad-ac2461c70685 fwd="182.166.166.94" dyno=web.1 connect=0ms service=4802ms status=500 bytes=1891 protocol=https 2020-05-24T11:07:56.370813+00:00 app[web.1]: D, [2020-05-24T11:07:56.370686 #4] DEBUG -- : [01104a90-9238-4b92-93ad-ac2461c70685] (1.2ms) ROLLBACK 2020-05-24T11:07:56.371321+00:00 app[web.1]: I, [2020-05-24T11:07:56.371226 #4] INFO -- : [01104a90-9238-4b92-93ad-ac2461c70685] Completed 500 Internal Server Error in 4216ms (ActiveRecord: 5.4ms) 2020-05-24T11:07:56.371957+00:00 app[web.1]: F, [2020-05-24T11:07:56.371897 #4] FATAL -- : [01104a90-9238-4b92-93ad-ac2461c70685] 2020-05-24T11:07:56.372019+00:00 app[web.1]: F, [2020-05-24T11:07:56.371966 #4] FATAL -- : [01104a90-9238-4b92-93ad-ac2461c70685] Excon::Error::Forbidden (Expected(200) <=> Actual(403 Forbidden) 2020-05-24T11:07:56.372020+00:00 app[web.1]: excon.error.response 2020-05-24T11:07:56.372021+00:00 app[web.1]: :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>60DD5D0631A60CE9</RequestId><HostId>5Vo6QOFPDsqudNt/hJl4zPbYrVP4IRSe7pPK/0IhFyvFnRvLZ4FHoBrQbga+C8Fcv8qNEhElx/0=</HostId></Error>" 2020-05-24T11:07:56.372021+00:00 app[web.1]: :cookies => [ 2020-05-24T11:07:56.372021+00:00 app[web.1]: ] 2020-05-24T11:07:56.372022+00:00 app[web.1]: :headers => { 2020-05-24T11:07:56.372022+00:00 app[web.1]: "Connection" => "close" 2020-05-24T11:07:56.372023+00:00 app[web.1]: "Content-Type" => "application/xml" 2020-05-24T11:07:56.372023+00:00 app[web.1]: "Date" => "Sun, 24 May 2020 11:07:56 GMT" 2020-05-24T11:07:56.372023+00:00 app[web.1]: "Server" => "AmazonS3" 2020-05-24T11:07:56.372024+00:00 app[web.1]: "x-amz-id-2" => "5Vo6QOFPDsqudNt/hJl4zPbYrVP4IRSe7pPK/0IhFyvFnRvLZ4FHoBrQbga+C8Fcv8qNEhElx/0=" 2020-05-24T11:07:56.372024+00:00 app[web.1]: "x-amz-request-id" => "60DD5D0631A60CE9" 2020-05-24T11:07:56.372025+00:00 app[web.1]: } 2020-05-24T11:07:56.372025+00:00 app[web.1]: :host => "helo2698.s3-ap-northeast-1.amazonaws.com" 2020-05-24T11:07:56.372025+00:00 app[web.1]: :local_address => "172.16.18.254" 2020-05-24T11:07:56.372025+00:00 app[web.1]: :local_port => 56496 2020-05-24T11:07:56.372026+00:00 app[web.1]: :path => "/uploads/micropost/picture/29208/IMG_1485.JPG" 2020-05-24T11:07:56.372026+00:00 app[web.1]: :port => 443 2020-05-24T11:07:56.372026+00:00 app[web.1]: :reason_phrase => "Forbidden" 2020-05-24T11:07:56.372026+00:00 app[web.1]: :remote_ip => "52.219.0.67" 2020-05-24T11:07:56.372027+00:00 app[web.1]: :status => 403 2020-05-24T11:07:56.372027+00:00 app[web.1]: :status_line => "HTTP/1.1 403 Forbidden\r\n" 2020-05-24T11:07:56.372027+00:00 app[web.1]: ): 2020-05-24T11:07:56.372069+00:00 app[web.1]: F, [2020-05-24T11:07:56.372022 #4] FATAL -- : [01104a90-9238-4b92-93ad-ac2461c70685] 2020-05-24T11:07:56.372118+00:00 app[web.1]: F, [2020-05-24T11:07:56.372076 #4] FATAL -- : [01104a90-9238-4b92-93ad-ac2461c70685] app/controllers/microposts_controller.rb:7:in `create'

該当のソースコード

ソースコード

試したこと

IAMポリシーか、バケットポリシーを設定しないといけないようなのですが、上手く行かずどうすれば良いのか困っております。

補足情報(FW/ツールのバージョ

Windows 10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

status => 403

となっているので、画像の閲覧権限の問題そうです。
画像を保存がされているバケットから、

  1. アクセス権限
  2. パブリックアクセスをすべてブロックをオフ

にしてあげると公開されるかと思います。

投稿2020/05/24 13:17

hatsu

総合スコア1809

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

helo

2020/05/24 23:11

hatsu様 コメントありがとうございます。 パブリックアクセスの方は、既にブロックオフにしておりますが アクセス拒否されてしまいます。 バケットポリシーを設定できていないのが原因とかではないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問