4

製油所のcmsイメージストレージをAmazons3に取得しようとしていますが、このガイドに従っています。

http://refinerycms.com/guides/how-to-use-amazon-s3-for-storage

しかし、私はここでブロックされています:

UNIX変数を使用してこれらを設定する方法や、ENVを使用してRubyを介して手動で設定する方法など、いくつかの方法があります。

これらの資格情報を定義するにはどうすればよいですか。:S3_KEY => "my_key"のようなものをenvironments.rbファイルに入れますか?私はこれを試しましたが、うまくいきませんでした。私もこれを試しました:

AWS::S3::Base.establish_connection!(
 :access_key_id     => ENV['S3_KEY'] || 'key_goes_here',
 :secret_access_key => ENV['S3_SECRET'] || 's3_secret_key_here',
)

これを行う方法を理解することはできません。どんなアイデアでも大歓迎です。

4

1 に答える 1

6

最も安全な方法は、それらを環境変数として指定することです。これにより、ソースコードに含まれなくなります。ソースにアクセスできるのがあなただけの場合は、説明どおりにソースを指定すると機能するはずです。

あなたはあなたの中でそれらを指定することができます~/.bashrc

export S3_KEY=mykey
export S3_SECRET=mysecret

または、ローカルでテストしているだけの場合は、railsコマンドの前に追加できます。

$ S3_KEY=mykey S3_SECRET=mysecret rails server

環境変数を使用したくない/使用できない場合、別の方法は、初期化子を使用してymlファイルからクレデンシャルをロードすることですconfig/initializers/s3_credentials.rb

# Load AWS::S3 configuration values
#
S3_CREDENTIALS = \
    YAML.load_file(File.join(Rails.root, 'config/s3_credentials.yml'))[Rails.env]

# Set the AWS::S3 configuration
#
AWS::S3::Base.establish_connection! S3_CREDENTIALS['connection']

config/s3_credentials.yml

development: &defaults
connection:
    :access_key_id: AAAAAA_your-key-here
    :secret_access_key: 4rpsi235js_your-secret-here
    :use_ssl: true
    bucket: project-development
    acl: public-read

production:
    <<: *defaults
    bucket: project
于 2011-04-11T01:50:31.330 に答える