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

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

ただいまの
回答率

90.61%

  • Ruby on Rails 4

    2404questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

  • AWS(Amazon Web Services)

    1907questions

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

AWSのS3を使いたいが、missing regionエラーが治りません...

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 934

big2017

score 21

質問させていただきます。

AWSクラウドストレージサービスのS3を用いて、paperclipでアップロードした画像をheroku上で表示されるようにしたいです。
しかし、production環境下で画像を投稿した時に

Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['AWS_REGION']):


というエラーが出てしまいます。

検索等して修正を続けましたが同じエラーが出続けてしまいます。

#/config/environments/production.rb

  config.paperclip_defaults = {
  storage: :s3,
  s3_region: ENV['ap-northeast-1'], #s3-ap-northeast-1.amazonaws.comとしても治りませんでした。。
  s3_credentials: {
    bucket: ENV['BUCKET_NAME'],
    access_key_id: ENV['ACCESS_KEY'],
    secret_access_key: ENV['SECRET_ACCESS_KEY']
  }
}
#app/models/projects.rb
class Project < ActiveRecord::Base

  has_attached_file :image, styles: { medium: "680x300>", thumb: "170x75>" } # peperclip
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ # paperclip
end


heroku環境変数も設定しました

AWS_ACCESS_KEY_ID:        AKIA***********
AWS_REGION:               ap-northeast-1
AWS_SECRET_ACCESS_KEY:    WLe******oUT+Vf****Eov2g70D5j8sG
DATABASE_URL:             postgres://*********:39bc6******ada6d00f0fdb97bf8ff63**********5b3**78f@ec2-**-2**-***-**8.compute-1.amazonaws.com:5432/dk****0p4j
LANG:                     en_US.UTF-8
RACK_ENV:                 production
RAILS_ENV:                production
RAILS_SERVE_STATIC_FILES: enabled
S3_BUCKET_NAME:           s3user-****2017
SECRET_KEY_BASE:          968*******************80b9

ログはこのようになっております。

$heroku logs -t
Command :: file -b --mime '/tmp/ea703e7aa1efda0064eaa507d9e8ab7e20170104-4-ovwmah.png'
2017-01-04T11:49:07.407837+00:00 app[web.1]:   SQL (0.9ms)  INSERT INTO "projects" ("name", "content", "price", "image_file_name", "image_content_type", "image_file_size", "image_updated_at", "slug", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING "id"  [["name", "Rails の環境構築 for Mac"], ["content", "Macユーザー向けにrailsの環境構築を解説します"], ["price", 0], ["image_file_name", "hoge.png"], ["image_content_type", "image/png"], ["image_file_size", 3076], ["image_updated_at", "2017-01-04 11:49:07.014036"], ["slug", "rails-for-mac"], ["created_at", "2017-01-04 11:49:07.404238"], ["updated_at", "2017-01-04 11:49:07.404238"]]
2017-01-04T11:49:07.408609+00:00 app[web.1]: [paperclip] saving /projects/images/000/000/008/original/hoge.png
2017-01-04T11:49:07.672213+00:00 heroku[router]: at=info method=POST path="/admin/projects" host=rb-movie-app2016.herokuapp.com request_id=2b9ed094-51e7-4dca-a284-0678f6c24aaf fwd="126.199.133.32" dyno=web.1 connect=1ms service=1083ms status=500 bytes=1754
2017-01-04T11:49:07.701669+00:00 app[web.1]:    (1.1ms)  ROLLBACK
2017-01-04T11:49:07.702546+00:00 app[web.1]: Completed 500 Internal Server Error in 768ms (ActiveRecord: 13.9ms)
2017-01-04T11:49:07.704579+00:00 app[web.1]:
2017-01-04T11:49:07.704581+00:00 app[web.1]: Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['AWS_REGION']):
2017-01-04T11:49:07.704582+00:00 app[web.1]:   vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.6.43/lib/aws-sdk-core/plugins/regional_endpoint.rb:34:in `after_initialize'

2017-01-04T11:49:07.704583+00:00 app[web.1]:   vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.6.43/lib/seahorse/client/base.rb:84:in `block in after_initialize'
2017-01-04T11:49:07.704584+00:00 app[web.1]:   vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.6.43/lib/seahorse/client/base.rb:83:in `each'
2017-01-04T11:49:07.704584+00:00 app[web.1]:   vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.6.43/lib/seahorse/client/base.rb:83:in `after_initialize'
2017-01-04T11:49:07.704585+00:00 app[web.1]:   vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.6.43/lib/seahorse/client/base.rb:21:in `initialize'
2017-01-04T11:49:07.704586+00:00 app[web.1]:   vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.6.43/lib/seahorse/client/base.rb:105:in `new'


大変恐縮ですが、少しでも参考になるようなことがあれば教えてくださると嬉しく思います。自分でももう少し考えて見ます。

参考にしたサイト
*herokuドキュメント
https://devcenter.heroku.com/articles/paperclip-s3

*Stack
http://stackoverflow.com/questions/32224995/rails4-1-aws-errors-missing-region

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

解決できました!!!

#/config/environments/production.rb

  config.paperclip_defaults = {
  :storage        => :s3,
  :bucket         => ENV['S3_BUCKET_NAME'],
  :s3_region      => ENV['AWS_REGION'],
  :s3_host_name   => 's3-ap-northeast-1.amazonaws.com',
  :s3_credentials => {
    access_key_id: ENV['AWS_ACCESS_KEY_ID'],
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
  }
}
#models/project.rb
  has_attached_file :image, 
                    :path => ":attachment/:id/:style.:extension",
                    styles: { medium: "680x300>", thumb: "170x75>" }, 
                    default_url: "/images/:style/missing.png" # peperclip

  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ # paperclip
#config/initializers/paperclip.rb

Paperclip::Attachment.default_options[:url] = 's3user-magict2017.s3.amazonaws.com'

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails 4

    2404questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

  • AWS(Amazon Web Services)

    1907questions

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