我按照refile/refile中的教程进行操作,并尝试使用 `refile-s3 将我的照片上传到 S3。但是,它仍在上传到我的本地主机。我想知道为什么?
Github 中的代码:https ://github.com/chrisyeung1121/refile-example
我错过了什么吗?
我按照refile/refile中的教程进行操作,并尝试使用 `refile-s3 将我的照片上传到 S3。但是,它仍在上传到我的本地主机。我想知道为什么?
Github 中的代码:https ://github.com/chrisyeung1121/refile-example
我错过了什么吗?
我运行了示例应用程序,一切都正确完成,文件上传到 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">
您可以在官方文档中阅读更多相关信息。