通过 Carrierwave 和 Fog 从 Amazon S3 下载文件
Download file from Amazon S3 through Carrierwave and Fog
我在 Rails 中有一个简单的应用程序,它允许我使用 Carrierwave 和 fog 将文件上传到 Amazon S3。它工作正常。我现在正在下载文件并在浏览器上显示它们。有用。但是,来自 S3 的私有 link(我将其设置为临时 link)显示在浏览器上,例如:
我不想公开 S3 中的私有 link。相反,我希望显示如下所示的 link:
www.xxx.com/user/1/resume/1
我有模型resume.rb
class Resume < ActiveRecord::Base
mount_uploader :attachment, ResumeUploader
end
控制器显示动作
def show
@resume = Resume.find(params[:id])
@resume_name = @resume.attachment.path.split("/").last
end
我的观点:show.html.erb
<%= link_to @resume_name, @resume.attachment.url %>
我是 ROR 的新手。谁能告诉我如何在浏览器上显示文件而不显示来自 S3 的私有 url?
您可以通过 CloudFront 路由图像。
Cloud Front 有很多优势,但也需要付出一定的代价。
一旦你通过云端路由你的图像,你就会为你的资产获得一个 link 的域,就像 s3 一样,但是在云端你可以改变 link.
我在 Rails 中有一个简单的应用程序,它允许我使用 Carrierwave 和 fog 将文件上传到 Amazon S3。它工作正常。我现在正在下载文件并在浏览器上显示它们。有用。但是,来自 S3 的私有 link(我将其设置为临时 link)显示在浏览器上,例如:
我不想公开 S3 中的私有 link。相反,我希望显示如下所示的 link: www.xxx.com/user/1/resume/1
我有模型resume.rb
class Resume < ActiveRecord::Base
mount_uploader :attachment, ResumeUploader
end
控制器显示动作
def show
@resume = Resume.find(params[:id])
@resume_name = @resume.attachment.path.split("/").last
end
我的观点:show.html.erb
<%= link_to @resume_name, @resume.attachment.url %>
我是 ROR 的新手。谁能告诉我如何在浏览器上显示文件而不显示来自 S3 的私有 url?
您可以通过 CloudFront 路由图像。 Cloud Front 有很多优势,但也需要付出一定的代价。 一旦你通过云端路由你的图像,你就会为你的资产获得一个 link 的域,就像 s3 一样,但是在云端你可以改变 link.