Heroku 使用CarrierWave将文件上载到Linode
我的应用程序托管在Heroku上,我想知道是否可以不将文件上载到Heroku上的public/文件夹,而是直接上载到-say-Linode 我的应用程序同时使用Heroku和Linode。两者通过web服务请求相互通信。但一般来说,我尝试只在Linode上存储生成/上传的文件,而在Heroku上不存储任何文件 现在我有一种情况,我想允许用户上传文件。最终目的地是利诺德。但目前,我不得不从客户端PC->Heroku->Linode。然而,最佳的解决方案是客户端PC->Linode 我想我会在尝试重新连接现有代码之前询问。 按如下所示更改storage_dir方法是否会奏效Heroku 使用CarrierWave将文件上载到Linode,heroku,carrierwave,linode,Heroku,Carrierwave,Linode,我的应用程序托管在Heroku上,我想知道是否可以不将文件上载到Heroku上的public/文件夹,而是直接上载到-say-Linode 我的应用程序同时使用Heroku和Linode。两者通过web服务请求相互通信。但一般来说,我尝试只在Linode上存储生成/上传的文件,而在Heroku上不存储任何文件 现在我有一种情况,我想允许用户上传文件。最终目的地是利诺德。但目前,我不得不从客户端PC->Heroku->Linode。然而,最佳的解决方案是客户端PC->Linode 我想我会在尝试重
def storage_dir
return http://<linode>/<local-folder>
end
def存储目录
返回http:///
结束
谢谢你的帮助
Abhinav那么,你在使用CarrierWave?我不确定你目前是如何上传到Linode的,但我会尝试一下 因此,根据CarrierWave在GitHub上的文档,您需要在配置/初始化器中的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
当然,如果您使用的是AmazonAWSS3。我在上找到了一些关于linode(和其他存储服务)的fog文档,如果单击“新建(选项={}”),您将看到@linode\u api\u key=options[:linode\u api\u 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?您可以使用跨源资源共享