是否存在“挂载”Heroku应用程序下的资产文件夹,然后将其链接到S3存储桶的概念?
我有一个带有“公共”资产文件夹的节点应用程序。我想.slugignore我本地项目中的“public”文件夹,将grunt上传到s3存储桶,git在启动时将代码推送到Heroku。 “public”文件夹将是可见的,但是来自S3存储桶而不是Heroku的本地文件系统。
我查看了Heroku's docs但是(除了设置env变量之外)没有“自动”可以将S3存储桶挂载到本地Heroku / app文件夹。
答案 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。