繁体   English   中英

通过Carrierwave和Fog从Amazon S3下载文件

[英]Download file from Amazon S3 through Carrierwave and Fog

我在Rails中有一个简单的应用程序,它允许我使用Carrierwave和fog将文件上传到Amazon S3。 工作正常。 我现在正在下载文件并在浏览器中显示它们。 有用。 但是,浏览器会显示来自S3的专用链接(我将其设置为临时链接),例如:

https://xxx.s3-ap-southeast-1.amazonaws.com/uploads/resume/attachment/4/xxx.pdf?X-Amz-Expires=100&X-Amz-Date=20150404T082207Z&X-Amz-Algorithm=AWS4- HMAC-SHA256&X-Amz-Credential = XXX / 20150404 / ap-southeast-1 / s3 / aws4_request&X-Amz-SignedHeaders = host&X-Amz-Signature = b72ac956fcd52ba887d9e4567d9e512207ba17dc4e5876bfc8c9d16

我不想公开来自S3的专用链接。 相反,我希望显示如下链接: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具有许多优点,但确实要付出一定的代价。 通过Cloud Front路由图像后,您将获得与s3相同的资产域链接,但是在Cloudfront中,您可以更改链接。

REF: 使用备用域名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM