【问题标题】:How can I migrate attachment_fu out of the database?如何将 attachment_fu 迁移出数据库?
【发布时间】:2026-02-10 03:15:02
【问题描述】:

我正在开发一个 Rails 项目,该项目当前使用 attachment_fu 接收上传的文件并将文件存储在数据库中。我想移动它们以使用文件系统。问题是数据库中目前有几千个上传文件,我们需要将它们迁移出去。我似乎找不到任何帮助。似乎有人发布提示的唯一迁移是文件系统-> S3。我将如何将我的文件迁移出数据库?

【问题讨论】:

    标签: ruby-on-rails attachment-fu


    【解决方案1】:

    如果您最终尝试通过 S3/CloudFront 提供这些静态文件以减少您的 Web/应用程序服务器上的负载,我可能会建议您使用新的 Custom Origin functionality of CloudFront,这将允许您将源文件保留在它们所在的位置.设置完成后,流程基本上是:

    1. 您的应用程序告诉浏览器从http://your-coudfront-host/path/to/file 检索文件
    2. 浏览器请求文件
    3. 如果 CloudFront 有该文件,它会返回它
    4. 如果 CloudFront 没有文件,它会从您的应用程序中检索该文件并将其缓存以供将来的请求使用(我相信最多 24 小时。)

    这就是我正在为我正在编写的应用程序中动态生成的产品图像所做的事情。

    这样做的好处是您不必承担不断将数据同步到 S3 的开销,如果您决定删除整个设置,您仍然可以像什么都没发生一样直接为您的资产提供服务。

    【讨论】: