上传文件使用CarrierWave
问题描述:
我的应用程序托管在Heroku上,如果它可以不将文件上传到在Heroku上,而是直接向公众/文件夹,我想知道到的Linode - 说 - 的Linode上传文件使用CarrierWave
我的应用程序同时使用的Heroku和Linode。两人通过网络服务请求相互交谈。但一般来说,我试图在Linode上存储任何生成/上传的文件 - 而在Heroku上没有任何内容
现在我有一种情况,我想让用户上传文件。最终的目的地是Linode。但目前,我不得不从客户端电脑 - > Heroku - > Linode。然而,最佳解决方案是客户端PC - > Linode
我想在尝试重新连接现有代码之前我会问。 会改变storage_dir方法如下诀窍?
def storage_dir
return http://<linode>/<local-folder>
end
感谢您的帮助 阿比纳夫
答
所以,你使用CarrierWave?我不确定您目前如何上传到Linode,但我会采取刺。
因此,根据CarrierWave的GitHub上的文档,你需要添加这样的事情也许在你的config /初始化一个carrierwave.rb文件:如果你正在使用亚马逊
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => 'xxx', # required
:aws_secret_access_key => 'yyy', # required
}
config.fog_directory = 'name_of_directory' # required
end
。当然,这是AWS S3。我在http://ruby-doc.org/gems/docs/p/phpfog-fog-0.4.1.2/Fog/Linode/Compute/Mock.html上发现了linode的一些雾文档(&其他存储服务)。如果点击'new(options = {})',您将看到@linode_api_key = options[:linode_api_key]
。所以,我认为你将能够使用CarrierWave直接上传到的Linode有:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'Linode',
:linode_api_key => 'xxx',
}
config.fog_directory = 'name_of_directory'
end
也许一个客户端的JavaScript解决方案,您只需直接上传文件的Linode?你可以使用跨源资源共享 – John 2013-03-24 07:19:51