Paperclip:从文件系统存储迁移到Amazon S3

ket*_*ain 17 ruby-on-rails amazon-s3 paperclip

我有一个RoR网站,用户可以上传照片.我使用paperclip gem上传照片并将它们作为文件存储在服务器上.我打算转移到Amazon S3来存储照片.我需要将所有现有照片从服务器移动到Amazon S3.有人能告诉我移动照片的最佳方式.谢谢 !

Noz*_*Noz 9

您需要登录AWS控制台并创建存储桶结构以方便您的图像.S3和Paperclip都没有任何从文件系统批量迁移的工具 - > s3,你需要使用工具s3cmd.特别是,您对s3cmd sync命令感兴趣,这有点像:

s3cmd sync ./public/system/images/ s3://imagesbucket
Run Code Online (Sandbox Code Playgroud)

如果您有任何图像URL硬编码到您的数据库(la markdown /模板代码),这可能有点棘手.一种选择是手动更新您的网址以指向新存储桶.或者,您可以进行机架重写.


iwa*_*bed 7

您可以通过在Amazon S3上创建一个与publicRails应用程序上的目录具有相同文件夹结构的存储桶来轻松完成此操作.

例如,您可以在Amazon S3上创建一个名为MyBucket的新存储桶,其中包含一个名为images的文件夹.您只需将Rails应用程序images文件夹中的所有图像移动到该新存储桶的images文件夹即可.

然后你可以设置你的应用程序使用资产主机,就像这个答案描述: 使用S3 for Rails"公共/图像"是否很好,有一个简单的方法吗?

如果您正在使用image_tag或其他标记帮助程序(javascripts,样式表等),那么它将asset_host在生产环境中使用它并正确生成S3存储桶的URL.


ket*_*ain 6

我发现这个脚本负责使用rake任务将图像移动到Amazon S3存储桶. https://gist.github.com/924617