TJ *_*ill 4 amazon-s3 ruby-on-rails-3
我有一个非常简单的模型和附件
has_attached_file :upload,
:storage => :s3,
:bucket => 'bestofbauer',
:s3_credentials => {
:access_key_id => ENV['MyAccessKEY'],
:secret_access_key => ENV['MySecretKey']
}
Run Code Online (Sandbox Code Playgroud)
我有一个名为bestofbauer的s3桶设置.
我知道我可以将凭证重构为初始化程序,但我还没有得到这个来保存附件,所以我并不担心它.
当我运行对象及其附件的保存时,我得到:
RuntimeError in RecommendationsController#create
Missing credentials
Run Code Online (Sandbox Code Playgroud)
我已经倾倒了:使用Paperclip和Amazon s3上传照片时缺少证书,但这并没有解决我的问题.
我使用以下宝石:
gem "paperclip"
gem "sws-sdk"
gem 'aws-s3'
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?
Bea*_*eau 12
您需要设置环境变量.这有两种不同的方法:
每次运行rails server
或访问S3帐户的任何其他命令时,您都需要包含密钥:
$ MyAccessKEY=ACCESS_KEY MySecretKEY=SECRET_KEY rails server
Run Code Online (Sandbox Code Playgroud)我假设你正在使用bash,所以编辑你的~/.bash_rc
或~/.bash_profile
设置你的环境变量
export MyAccessKEY=ACCESS_KEY
export MySecretKEY=SECRET_KEY
Run Code Online (Sandbox Code Playgroud)
然后打开一个新的终端窗口并仔细检查它们是否已设置
$ echo $MyAccessKey
> ACCESS KEY PRINTS OUT HERE
Run Code Online (Sandbox Code Playgroud)如果您要部署到Heroku,那么您还需要在那里提供您的环境变量:
$ heroku config:add MyAccessKEY=ACCESS_KEY MySecretKEY=SECRET_KEY
Run Code Online (Sandbox Code Playgroud)
你可以查看你的Heroku配置:
$ heroku config
Run Code Online (Sandbox Code Playgroud)
它将列出您为该应用程序提供的所有配置变量.
您可能希望将S3存储桶名称也放在ENV设置中,以便在本地测试时不会弄乱存储桶.
归档时间: |
|
查看次数: |
5515 次 |
最近记录: |