[筆記] 網站上傳檔案使用雲端空間 [七牛雲]

gem carrierwave
要先安裝carrierwave才能上傳檔案
git checkout -b qiniu

註冊七牛

https://portal.qiniu.com/bucket
註冊七牛之後到

個人面板 ->密鑰管理,找到AK跟SK

新建儲存空間
產品列表 -> 對象儲存

安裝對應的GEM

Gemfile
+ gem 'carrierwave-qiniu'
+ gem 'qiniu-rs'

bundle install
bundle update
touch config/initializers/carrierwave.rb

使用carrierwave上傳時用下面的帳密設定,不直接顯示,帳密透過figaro保存

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" 不同

 #華東 "http://up.qiniug.com" 

 #華北  "http://up-z1.qiniu.com"  

 #華南 "http://up-z2.qiniu.com"  

end

單圖上傳器,上傳到七牛

app/uploaders/image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
...()
- storage :file
+  if Rails.env.production?
+    storage :qiniu
+  elsif Rails.env.development?
+    storage :file
+  end
...()

多圖上傳器,上傳到七牛

app/uploaders/image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
...()
- storage :file
+  if Rails.env.production?
+    storage :qiniu
+  elsif Rails.env.development?
+    storage :file
+  end
...()

使用Figaro保存密碼

gem 'figaro'
bundle install
figaro install
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

figaro heroku:set -e production
可以看到密碼已設定
heroku config

git push origin qiniu
git push heroku qiniu:master
heroku run rake db:migrate

網站使用上傳功能應該就會傳到七牛的空間



希望您喜歡這篇文章,請抽空幫我投一票,謝謝!



只要¥1,就能解救穷苦台湾同胞
comments powered by Disqus