我的应用程序托管在Heroku上,我想知道是否可以将文件上传到Heroku上的公共/文件夹,但直接上传到 - 比如说 - Linode
我的应用程序同时使用Heroku和Linode。这两个人通过网络服务请求互相交谈。但一般来说,我尝试只在Linode上存储任何生成/上传的文件 - 而在Heroku上没有任何内容
现在我有一种情况,我希望允许用户上传文件。最终目的地是Linode。但目前,我不得不从客户端PC - > Heroku - >的Linode。然而,最佳解决方案是客户端PC - >的Linode
在我尝试重新连接现有代码之前,我想我会问。 将如下更改storage_dir方法的做法?
def storage_dir
return http://<linode>/<local-folder>
end
感谢您的帮助 阿比纳夫
答案 0 :(得分:0)
那么,您使用的是CarrierWave吗?我不确定你目前是如何上传到Linode的,但我会采取刺。
所以,根据CarrierWave关于GitHub的文档,您需要在config / initializers中添加类似于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