2015-10-13 86 views
0

我正嘗試使用回形針和霧寶石將個人資料圖片上傳到Google Cloud。到目前爲止,這是我有Heroku ArgumentError(不是公認的提供商)

在我的Gemfile

gem "paperclip", git: "git://github.com/thoughtbot/paperclip.git" 
gem 'fog' 

在我的用戶模型

has_attached_file :avatar, 
         styles: {:big => "200x200>", thumb: "50x50>"}, 
         storage: :fog, 
         fog_credentials: "#{Rails.root}/config/gce.yml", 
         fog_directory: "google-bucket-name" 

    validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/ 

當我運行這個地方,我可以把它上傳罰款交給谷歌。但是,當我嘗試在Heroku上執行此操作時,出現此錯誤

015-10-13T19:47:15.703642+00:00 app[web.1]: SQL (2.1ms) UPDATE "users" SET "avatar_file_name" = $1, "avatar_content_type" = $2, "avatar_file_size" = $3, "avatar_updated_at" = $4, "updated_at" = $5 WHERE "users"."id" = $6 [["avatar_file_name", "3.jpeg"], ["avatar_content_type", "image/jpeg"], ["avatar_file_size", 8587], ["avatar_updated_at", "2015-10-13 19:47:15.140362"], ["updated_at", "2015-10-13 19:47:15.695467"], ["id", 3]] 
2015-10-13T19:47:15.707684+00:00 app[web.1]: (0.9ms) ROLLBACK 
2015-10-13T19:47:15.711451+00:00 app[web.1]: F, [2015-10-13T19:47:15.711260 #3] FATAL -- : 
2015-10-13T19:47:15.711457+00:00 app[web.1]: ArgumentError (is not a recognized provider): 
2015-10-13T19:47:15.711459+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/gems/fog-core-1.32.1/lib/fog/core/services_mixin.rb:12:in `new' 
2015-10-13T19:47:15.711461+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/gems/fog-core-1.32.1/lib/fog/storage.rb:22:in `new' 
2015-10-13T19:47:15.711463+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/bundler/gems/paperclip-8339e0fce5d8/lib/paperclip/storage/fog.rb:217:in `connection' 
2015-10-13T19:47:15.711465+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/bundler/gems/paperclip-8339e0fce5d8/lib/paperclip/storage/fog.rb:227:in `directory' 
2015-10-13T19:47:15.711468+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/bundler/gems/paperclip-8339e0fce5d8/lib/paperclip/storage/fog.rb:101:in `block in flush_writes' 
2015-10-13T19:47:15.711470+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/bundler/gems/paperclip- 

不知道發生了什麼事。

+0

「霧」是否需要密鑰? – Cyzanfar

+0

當我在本地嘗試時,它的上傳效果很好。這隻發生在Heroku上 – Harish

+0

那不能回答我的問題...... – Cyzanfar

回答

0

經過大量的調試,結果我的fog_credentials散列未按預期在heroku上。而不是通過「#{Rails.root} /config/gce.yml」,我這樣做。

has_attached_file :avatar, 
         styles: {:big => "200x200>", thumb: "50x50>"}, 
         storage: :fog, 
         fog_credentials: { aws_access_key_id: '<your_access_id>' 
             aws_secret_access_key: '<your secret>' 
             provider: 'Google' }, 
         fog_directory: "google-bucket-name" 

    validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/ 
+0

難道它不適用於heroku上的env變量嗎? – roadev

+1

Env變量將起作用。這就是我最終設置的方式。 – Harish