保华的Rails学习笔记

如何部署七牛云

1、需要在gemfile文件里边添加

gem 'carrierwave-qiniu'
gem 'qiniu-rs'

然后bundle install 和 bundle update
2、创建touch config/initializers/carrierwave.rb
加入内容

CarrierWave.configure do |config|
  config.storage             = :qiniu
  config.qiniu_access_key    = ENV["qiniu_access_key"]
  config.qiniu_secret_key    = ENV["qiniu_secret_key"]
  config.qiniu_bucket        = ENV["qiniu_bucket"]
  config.qiniu_bucket_domain = ENV["qiniu_bucket_domain"]
  config.qiniu_block_size    = 4*1024*1024
  config.qiniu_protocol      = "http"
  config.qiniu_up_host       = "http://up.qiniug.com"  #选择不同的区域时,"up.qiniug.com" 不同

end

注意config.qiniu_up_host的填写,需要根据区域
可根据https://developer.qiniu.com/kodo/manual/1671/region-endpoint这个链接来填写
3、修改app/uploaders/image_uploader.rb
加入

if Rails.env.production?
    storage :qiniu
  else
    storage :file
  end

或者加入

if Rails.env.production?
    storage :qiniu
elsif Rails.env.development?
    storage :file
end

4、安装figaro密码管理gem
在gemfile里边添加

gem 'figaro'

然后执行 bundle install 和 figaro install
会自动生成 config/application.yml 文件并自动添加到 .gitignore 档案里

5、设置机密信息
cp config/application.yml config/application.yml.example
config/application.yml添加如下内容:

...(略)

 production:
   qiniu_access_key: xxxx  # 你的 qiniu AccessKey

   qiniu_secret_key: xxxx  # 你的 qiniu SecretKey

   qiniu_bucket: xxxx  # 你的 qiniu bucket

   qiniu_bucket_domain: xxxx  # 你的 qiniu bucket domain



 development:
   qiniu_access_key: xxxx  # 你的 qiniu AccessKey

   qiniu_secret_key: xxxx  # 你的 qiniu SecretKey

   qiniu_bucket: xxxx  # 你的 qiniu bucket

   qiniu_bucket_domain: xxxx  # 你的 qiniu bucket domain

6、创建heroku app并将设定好的机密资讯同步到这个app

heroku create 先创建一个heroku app
figaro heroku:set -e production
heroku config 可以列出目前所有的设定