如何将 Carrierwave 与自己的 Openstack Swift 安装一起使用



我们在 Rails 3.2.7 项目中使用 Carrierwave。目前,我们正在迁移到我们自己的Openstack Swift安装,并希望继续使用Carrierwave。

通过查看Carrierwave文档,我可以看到它可以使用Fog gem与Rackspace一起使用。尽管如此,我找不到任何如何使用Openstack Swift安装进行设置的文档。

有没有办法在我自己的Openstack Swift安装中使用Carrierwave和Fog?

以下是我们解决这个问题的方法:

Fog Gem 没有原生支持来处理使用 Swift 安装的存储。我希望有一天会有。

但是您可以使用"HP"作为Carrierwave的提供商。HP-Storage与Rackspace一样,基于Openstack Swift,支持使用Fog Gem处理存储。它并不完美,但它奏效了:

CarrierWave.configure do |config|
  config.storage = :fog
  config.fog_credentials = {
    :provider => 'HP',
    :hp_secret_key => "swift_password",
    :hp_account_id => "swift_container",
    :hp_tenant_id => "swift_tenant_id'",
    :hp_auth_uri => "swift_url"
    :hp_use_upass_auth_style => true
  }
  config.fog_directory = "swift_container"
end

最新更新