2

我按照refile/refile中的教程进行操作,并尝试使用 `refile-s3 将我的照片上传到 S3。但是,它仍在上传到我的本地主机。我想知道为什么?

Github 中的代码:https ://github.com/chrisyeung1121/refile-example

我错过了什么吗?

4

1 回答 1

0

我运行了示例应用程序,一切都正确完成,文件上传到 S3。您可以在查看 s3 存储桶时看到这一点,应该有一个/store文件夹,里面有一个文件,看起来类似于:8d005532259e4abc0.....它将与保存在数据库中的 id 相对应。在您的情况下,id 在您的 User 模型中存储为 profile_image_id 。

attachment_url返回的结果<img src="/attachments/store/fill/300/300/8d005532259e4abc0...../profile_image.jpg" alt="Profile image">似乎仍在上传到本地主机 ,这可能会令人困惑。

正在发生的事情是 refile 从 amazon s3 下载文件,动态将其修改为 300x300 并将其发送到浏览器。但是,不应该在每次加载页面时都这样做,因为它会浪费大量的处理能力。这就是需要 CDN 的地方,而 refile 旨在使用 CDN。这样处理后的图像就会被缓存,一切都快得多。

refile.rb配置文件中:

Refile.cdn_host = "https://your-dist-url.cloudfront.net"

或者就我而言,我将其限制为生产:

if Rails.env.production?
  Refile.cdn_host = "https://your-dist-url.cloudfront.net"
end

请注意,如果使用低于 0.6.0 的版本,.cdn_host 应该是 .host

现在这应该返回类似<img src="https://your-dist-url.cloudfrond.net/attachments/store/fill/300/300/8d005532259e4abc0...../profile_image.jpg" alt="Profile image">

您可以在官方文档中阅读更多相关信息。

于 2016-04-09T15:21:52.727 回答