在Rails 3 Refinery CMS应用程序中设置s3的问题



我正在尝试将我的精炼厂cms图像存储到Amazon s3,我遵循以下指南:

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

但是我被挡住了:

设置的方法有很多这些是你的证件,包括Unix变量或设置它们

如何定义这些凭据。我是否应该输入如下内容:S3_KEY =>"my_key"。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',
)

我不知道该怎么做。任何想法都非常感谢。

最安全的方法是将它们指定为环境变量,这样它们就不会包含在源代码中。如果你是唯一一个可以访问源代码的人,那么按照你的描述指定它们应该可以工作。

您可以在您的~/.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

相关内容

  • 没有找到相关文章

最新更新