在Heroku应用程序下装载S3文件夹
是否有这样一个概念,即在Heroku应用程序下“装载”资产文件夹,然后将其链接到S3 bucket 我有一个带有“公共”资产文件夹的节点应用程序。我想。忽略本地项目中的“public”文件夹,让grunt上传到s3 bucket,git在启动时将代码推送到Heroku。“public”文件夹将是可见的,但源于S3存储桶,而不是Heroku的本地文件系统在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文件夹中。我不知道任何现成的解决
我看了一下,但是(除了设置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获取您正在寻找的数据