[英]Using Paperclip, Fog, and Ceph
我正在编写一个Rails 3应用程序,该应用程序使用Paperclip将视频文件附件转码为其他格式,然后存储生成的文件。 本地存储一切正常,但是我正在尝试使用Paperclip的Fog支持将其存储在我们自己的Ceph集群上的存储桶中。 但是,我似乎找不到正确的配置选项来使Fog与我的Ceph服务器对话。
这是我的Rails课的摘录:
has_attached_file :videofile,
:storage => :fog,
:fog_credentials => { :aws_access_key_id => 'xxx', :aws_secret_access_key => 'xxx', :provider => 'AWS'},
:fog_public => true,
:url => ":id/:filename",
:fog_directory => 'replay',
:fog_host => 'my-hostname',
使用此设置的写入失败,因为Paperclip尝试保存到Amazon S3而非我提供的主机。 我有一个非Rails / non-Paperclip玩具脚本,可以正常工作:
conn = Fog::Storage.new({
:aws_access_key_id => 'xxx',
:aws_secret_access_key => 'xxx',
:host => 'my-hostname',
:path_style => true,
:provider => "AWS",
})
这可以正确连接到我的本地Ceph服务器。 因此,我怀疑我在Paperclip中没有正确配置某些内容-但是呢?
这是我认为导致fog.rb引起的连接仅到AWS的相关请求:
def host_name_for_directory
if @options[:fog_directory].to_s =~ Fog::AWS_BUCKET_SUBDOMAIN_RESTRICTON_REGEX
"#{@options[:fog_directory]}.s3.amazonaws.com"
else
"s3.amazonaws.com/#{@options[:fog_directory]}"
end
end
错误仅来自配置不正确的Ceph集群。 对于任何发现此线程的人,只要您:
:fog_credentials
传递:host
,这将是Ceph前端的FQDN https://bucket.ceph-server.foobar.com.
回形针可以直接使用。 我不认为它可以在任何可以使用:host
地方进行记录,但是它可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.