在Heroku app下安装S3文件夹

时间:2014-12-08 17:54:55

标签: heroku amazon-s3

是否存在“挂载”Heroku应用程序下的资产文件夹,然后将其链接到S3存储桶的概念?

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

我查看了Heroku's docs但是(除了设置env变量之外)没有“自动”可以将S3存储桶挂载到本地Heroku / app文件夹。

1 个答案:

答案 0 :(得分:2)

我不知道任何开箱即用的解决方案。但基本设置似乎触手可及。这是第一次使用路径中的动态段和控制器中的重定向:

在routes.rb中:

get 's3/:file_key', to: 's3_redirects#show'

s3_redirects_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

显然,您可以用自己喜欢的方法替换S3文件,并且必须定义get_bucket等等。

这当然只能点击有效的密钥,你会得到一个&#34;没有这样的密钥存在&#34;除此以外。如果您正在寻找索引/ ls类型的操作,当然还需要做更多的事情,但只要您有合理的方式获取数据,这里的基本结构应该允许您这样做。寻找S3。