Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku 使用CarrierWave将文件上载到Linode_Heroku_Carrierwave_Linode - Fatal编程技术网

Heroku 使用CarrierWave将文件上载到Linode

Heroku 使用CarrierWave将文件上载到Linode,heroku,carrierwave,linode,Heroku,Carrierwave,Linode,我的应用程序托管在Heroku上,我想知道是否可以不将文件上载到Heroku上的public/文件夹,而是直接上载到-say-Linode 我的应用程序同时使用Heroku和Linode。两者通过web服务请求相互通信。但一般来说,我尝试只在Linode上存储生成/上传的文件,而在Heroku上不存储任何文件 现在我有一种情况,我想允许用户上传文件。最终目的地是利诺德。但目前,我不得不从客户端PC->Heroku->Linode。然而,最佳的解决方案是客户端PC->Linode 我想我会在尝试重

我的应用程序托管在Heroku上,我想知道是否可以不将文件上载到Heroku上的public/文件夹,而是直接上载到-say-Linode

我的应用程序同时使用Heroku和Linode。两者通过web服务请求相互通信。但一般来说,我尝试只在Linode上存储生成/上传的文件,而在Heroku上不存储任何文件

现在我有一种情况,我想允许用户上传文件。最终目的地是利诺德。但目前,我不得不从客户端PC->Heroku->Linode。然而,最佳的解决方案是客户端PC->Linode

我想我会在尝试重新连接现有代码之前询问。 按如下所示更改storage_dir方法是否会奏效

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?您可以使用跨源资源共享