我有一个托管在Heroku上的应用程序,使用Paperclip将用户照片存储在Amazon S3上。
我想基于一些内部逻辑(该应用程序是多租户的,我正在将AWS文件存储和我的Postgres DB分别放置在不同的租户/模式中),将一些(而不是全部)文件移动到新的存储桶中。
我想基于一些内部逻辑(该应用程序是多租户的,我正在将AWS文件存储和我的Postgres DB分别放置在不同的租户/模式中),将一些(而不是全部)文件移动到新的存储桶中。
我有两个选项正在考虑中(上面画出)
选项1-使用AWS Cli直接在桶之间移动文件
这个选项是AWS原生的,但它有一个缺点,就是必须担心每个文件的整个文件夹结构(缩略图等)。移动一个文件涉及到移动文件的各种样式-原始大小、中等大小、缩略图等等,因此它不像复制1个文件那样简单。
它还将所有内容与新桶一模一样地复制到相同的文件夹/ id结构中,我希望避免这种情况,因为当我在postgres DB中迁移它们时,用户对应的DB信息(例如id
)将会更改
选项2-使用纸夹将每个文件拉到本地并重新上传
这是一个有吸引力的选择,因为它让纸夹处理所有工作。
然而,纸夹使用存储桶名称来构建文件的URL。我需要它从1个桶中提取并推送到另一个桶中。是否有一种方法可以为每个事务单独设置bucket
名称?