我们在 Rails 3.2.7 项目中使用 Carrierwave。目前我们正在迁移到我们自己的 Openstack Swift 安装,并希望继续使用 Carrierwave。
通过查看 Carrierwave 文档,我可以看到它可以与使用 Fog gem 的 Rackspace 一起使用。不过,我找不到任何文档如何使用 Openstack Swift 安装进行设置。
有没有办法在我自己的 Openstack Swift 安装中使用 Carrierwave 和 Fog?
我们在 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