Ruby on rails 从AmazonS3Rails提供图像服务

Ruby on rails 从AmazonS3Rails提供图像服务,ruby-on-rails,ruby,amazon-s3,paperclip,Ruby On Rails,Ruby,Amazon S3,Paperclip,我将所有图像存储在客户端的AmazonS3中,我不想显示我用以下方法编写的AmazonS3URL def show send_data( open( @attachment.content.url, "rb").read, :type => @attachment.content_content_type, :filename => @attachment.content_file_name, :

我将所有图像存储在客户端的AmazonS3中,我不想显示我用以下方法编写的AmazonS3URL

 def show
     send_data(
        open( @attachment.content.url, "rb").read, 
         :type => @attachment.content_content_type,
          :filename => @attachment.content_file_name,
          :disposition => "inline"
       )
 end

在routes中,我添加了每个附件都需要调用上面的操作,现在一切正常,但问题是每次渲染时都没有缓存它。请让我知道如何更好地缓存它。操作缓存是合适的方式吗?

为什么不将自定义DNS名称映射到amazon bucket,让amazon为您提供资产

参考资料:


为什么不将自定义DNS名称映射到amazon bucket,让amazon为您提供资产

参考资料:


这是对@Simone的回答中提出的问题的回答

您可以通过使用cdn进行一些努力来实现这一点

您可以将多个发行版链接到单个S3 bucket,每个发行版最多可以有10个与之关联的CNAME

多个CNAME别名

您可以使用多个CNAME别名 有一个发行版。比如你 可能有别名1.example.com和 alias2.example.com两者都关联 使用您的发行版的域名。 您最多可以有10个CNAME别名 按分配。你可以把一个 只有一个的特定CNAME别名 分配


更多信息可在

中找到,这是对@Simone答案中提出的问题的回答

您可以通过使用cdn进行一些努力来实现这一点

您可以将多个发行版链接到单个S3 bucket,每个发行版最多可以有10个与之关联的CNAME

多个CNAME别名

您可以使用多个CNAME别名 有一个发行版。比如你 可能有别名1.example.com和 alias2.example.com两者都关联 使用您的发行版的域名。 您最多可以有10个CNAME别名 按分配。你可以把一个 只有一个的特定CNAME别名 分配



更多信息可在

酷!我不知道这是可能的。那将是一个指向bucket域的CNAME记录,对吗?没错。我在答案中加了几处参考资料。Amazon S3官方文档中也有一些详细信息。我的应用程序将以每个客户为基础,它类似于customername.myapp.com,并且客户名称将根据客户进行更改。。我想向客户展示他从customername.myapp.com获取的图像,这在将来可能吗paperclip@user315252-您只能将1个自定义域映射到您的bucket,因此无法执行您想要的操作。除非您通过服务器代理下载,但这在某种程度上违背了使用s3的目的。如何在不点击多个请求的情况下实际创建amazon s3的代理?酷!我不知道这是可能的。那将是一个指向bucket域的CNAME记录,对吗?没错。我在答案中加了几处参考资料。Amazon S3官方文档中也有一些详细信息。我的应用程序将以每个客户为基础,它类似于customername.myapp.com,并且客户名称将根据客户进行更改。。我想向客户展示他从customername.myapp.com获取的图像,这在将来可能吗paperclip@user315252-您只能将1个自定义域映射到您的bucket,因此无法执行您想要的操作。除非您通过服务器代理下载,但这在某种程度上违背了使用s3的目标。如何在不点击多个请求的情况下实际创建amazon s3的代理?@user315252-您不需要这样做。每个bucket可以有多个发行版,每个发行版有10个CNAME,因此没有限制。这种方法的另一个问题是它不会提供它将提供给永久用户的到期urllink@user315252-您想要私有URL吗?您可以使用它们:。当您再次使用签名url时,主机名将与s3相同。amazon。。。。。这违背了使用CNAMEI的目的。我说的是url_方法,用于获取在一定时间内过期的urltime@user315252-你不需要。每个bucket可以有多个发行版,每个发行版有10个CNAME,因此没有限制。这种方法的另一个问题是它不会提供它将提供给永久用户的到期urllink@user315252-您想要私有URL吗?您可以使用它们:。当您再次使用签名url时,主机名将与s3相同。amazon。。。。。这与使用CNAME的目的背道而驰。我说的是url_方法,用于获取在一定时间内过期的url