2016-07-27 12 views
0

最新のバージョンのrefile gemを使用してAWSに画像をアップロードしても問題ありません。私がrspecで私のアプリをテストしようとすると、私はこのエラーを受け取ります:Refilと 'aws-sdk' V2の宝石が欠けている地域のエラー

/aws-sdk-core/plugins/regional_endpoint.rb:34:in `after_initialize '使用:ENVに地域オプションまたは輸出地域名[ 'AWS_REGION'](AWS ::エラー:: MissingRegionError)

Gemfile:

宝石 "リファイル" が必要です: "整頓/レール"

"整理整頓の-S3" 宝石 "整理整頓の-mini_magick"

宝石

refile.rb

"が整頓/ S3"

AWS = {

access_key_id必要 '整頓/ simple_form' を必要とする:ENV [ 'AWS_ACCESS_KEY_ID']、

secret_access_key:ENV [ 'AWS_SECRET_ACCESS_KEYを'] 、

領域:ENV [ 'AWS_REGION']、

バケツ:ENV [ 'AWS_BUCKET']

}

Refile.cache =整頓:: S3.new(接頭辞: "キャッシュ"、** AWS)

Refile.store =整頓:: S3.new(接頭辞: "店" ** AWS)

Iは aws.rb新しい初期設定しようとした:

Aws.config.update({ 領域 'AWS-SDK' を必要とします'us-west-2'、 資格情報:Aws :: Credentials.new( 'akid'、 'secret')

これは機能しませんでした。

10x

答えて

1

あなたのコードは環境変数としてAWS_REGIONの値を探しているようです。テストを実行する前にAWS_REGIONの値が設定されていることを確認しましたか?それは次の手順を実行して、bashで設定されていますかどうかを確認できます。

env | grep AWS_REGION 

それが設定されていない場合は、単に(再びbashで)そうのような変数を設定する必要があります。

export AWS_REGION="us-west-2" 
0

は答えを見つけました: あなたのイニシャライザに追加するか、飾るだけです。rb:

require "refile/s3" 
require 'refile/simple_form' 

if Rails.env.production? 
    aws = { 
    access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], 
    region: ENV['AWS_REGION'], 
    bucket: ENV['AWS_BUCKET'] 
    } 

    Refile.cache = Refile::S3.new(prefix: "cache", **aws) 
    Refile.store = Refile::S3.new(prefix: "store", **aws) 
end 
関連する問題