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应用程序下装载S3文件夹_Heroku_Amazon S3 - Fatal编程技术网

在Heroku应用程序下装载S3文件夹

在Heroku应用程序下装载S3文件夹,heroku,amazon-s3,Heroku,Amazon S3,是否有这样一个概念,即在Heroku应用程序下“装载”资产文件夹,然后将其链接到S3 bucket 我有一个带有“公共”资产文件夹的节点应用程序。我想。忽略本地项目中的“public”文件夹,让grunt上传到s3 bucket,git在启动时将代码推送到Heroku。“public”文件夹将是可见的,但源于S3存储桶,而不是Heroku的本地文件系统 我看了一下,但是(除了设置env变量外)没有“automagic”可以将S3存储桶装载到本地Heroku/app文件夹中。我不知道任何现成的解决

是否有这样一个概念,即在Heroku应用程序下“装载”资产文件夹,然后将其链接到S3 bucket

我有一个带有“公共”资产文件夹的节点应用程序。我想。忽略本地项目中的“public”文件夹,让grunt上传到s3 bucket,git在启动时将代码推送到Heroku。“public”文件夹将是可见的,但源于S3存储桶,而不是Heroku的本地文件系统


我看了一下,但是(除了设置env变量外)没有“automagic”可以将S3存储桶装载到本地Heroku/app文件夹中。

我不知道任何现成的解决方案。但基本设置似乎唾手可得。这是使用路由中的动态段和控制器中的重定向的第一个过程:

在routes.rb中:

get 's3/:file_key', to: 's3_redirects#show'
s3_重定向_controller.rb:

class S3RedirectsController < ApplicationController
  def show
    bucket = get_bucket
    file_key = params[:file_key]
    file_key += "." + params[:format] if params[:format].present?
    s3_file_link = RightAws::S3Interface.new(your_config_options_here).get_link(bucket, file_key, link_expiration_time)
    redirect_to s3_file_link
  end
end
class S3RedirectsController
显然,您可以用S3文件替代您最喜欢的接口方法,并且您必须定义get_bucket等等

当然,这只会命中有效的键,否则会得到“不存在这样的键”。如果您正在寻找索引/ls类型的操作,当然还需要做更多的工作,但是这里的基本结构应该允许您这样做,只要您有一个合理的方法从S3获取您正在寻找的数据