加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 如何使用Paperclip和s3存储在rails 3中解决

发布时间:2020-12-17 04:04:43 所属栏目:百科 来源:网络整理
导读:我有一个非常简单的模型和附件 has_attached_file :upload,:storage = :s3,:bucket = 'bestofbauer',:s3_credentials = { :access_key_id = ENV['MyAccessKEY'],:secret_access_key = ENV['MySecretKey'] } 我有一个名为bestofbauer的s3桶设置. 我知道我可以
我有一个非常简单的模型和附件

has_attached_file :upload,:storage => :s3,:bucket => 'bestofbauer',:s3_credentials => {
         :access_key_id => ENV['MyAccessKEY'],:secret_access_key => ENV['MySecretKey']
       }

我有一个名为bestofbauer的s3桶设置.

我知道我可以将凭证重构为初始化程序,但我还没有得到这个来保存附件,所以我并不担心它.

当我运行对象及其附件的保存时,我得到:

RuntimeError in RecommendationsController#create

Missing credentials

我倾注了:Credentials missing when uploading photos with Paperclip and Amazon s3,但这并没有解决我的问题.

我使用以下宝石:

gem "paperclip"
gem "sws-sdk"
gem 'aws-s3'

还有其他想法吗?

解决方法

您需要设置环境变量.这有两种不同的方法:

>每次运行rails服务器或访问S3帐户的任何其他命令时,都需要包含密钥:

$MyAccessKEY=ACCESS_KEY MySecretKEY=SECRET_KEY rails server

>我假设你正在使用bash所以编辑你的?/ .bash_rc或?/ .bash_profile来设置你的环境变量

export MyAccessKEY=ACCESS_KEY
export MySecretKEY=SECRET_KEY

然后打开一个新的终端窗口并仔细检查它们是否已设置

$echo $MyAccessKey
> ACCESS KEY PRINTS OUT HERE

如果您要部署到Heroku,那么您还需要在那里提供您的环境变量:

$heroku config:add MyAccessKEY=ACCESS_KEY MySecretKEY=SECRET_KEY

你可以查看你的Heroku配置:

$heroku config

它将列出您为该应用程序提供的所有配置变量.

您可能希望将S3存储桶名称也放在ENV设置中,以便在本地测试时不会弄乱存储桶.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读