2014-08-28 34 views
1

我正在使用PaperclipFog來處理雲存儲。雲存儲提供Openstack API,這裏是我的設置:Ruby FOG和定製OpenStack提供程序:NotImplementedError

paperclip_defaults.rb

Paperclip::Attachment.default_options.update({ 
    :path => "images/:class/:id/:attachment/:style/img_:fingerprint", 
    :storage => :fog, 
    :fog_credentials => { 
     :provider => 'OpenStack', 
     :openstack_auth_url => 'myurl', 
     :openstack_username => 'login', 
     :openstack_api_key => 'pass' 
    }, 
    :fog_directory => 'dir', 
    :fog_public => true, 
}) 

一切正常上傳,但我不能下載圖片! 這裏是堆棧跟蹤:

fog (1.23.0) lib/fog/openstack/models/storage/directory.rb:35:in `public_url' 
fog (1.23.0) lib/fog/openstack/models/storage/files.rb:67:in `get_url' 
fog (1.23.0) lib/fog/openstack/models/storage/file.rb:81:in `public_url' 
paperclip (4.2.0) lib/paperclip/storage/fog.rb:136:in `public_url' 
paperclip (4.2.0) lib/paperclip/storage/fog.rb:51:in `block (2 levels) in extended' 
paperclip (4.2.0) lib/paperclip/interpolations.rb:34:in `block (2 levels) in interpolate' 
paperclip (4.2.0) lib/paperclip/interpolations.rb:33:in `gsub' 
paperclip (4.2.0) lib/paperclip/interpolations.rb:33:in `block in interpolate' 
paperclip (4.2.0) lib/paperclip/interpolations.rb:32:in `each' 
paperclip (4.2.0) lib/paperclip/interpolations.rb:32:in `inject' 
paperclip (4.2.0) lib/paperclip/interpolations.rb:32:in `interpolate' 
paperclip (4.2.0) lib/paperclip/url_generator.rb:13:in `for' 
paperclip (4.2.0) lib/paperclip/attachment.rb:142:in `url' 

NotImplementedError

public_url總是返回此錯誤OpenStack的存儲。怎麼了?

回答

2

您需要將「fog_host」設置爲您的對象存儲服務端點。

這裏是一個例子。 https://gist.github.com/withhawaii/4527bfdbe4fd1d52f67a

您可以在Openstack Horizo​​n中找到您的端點。 登錄到地平線並點擊「訪問&安全」=>「API訪問」。 您將找到對象存儲服務端點的URL。

它基本上是一個URL,用戶可以在其中訪問文件。 您的系統管理員可能會設置代理或其他東西。 如果是這種情況,請設置系統管理員提供給您的URL。

希望這會有所幫助。

GT

相關問題