2

所以我有一个模型,照片,我想复制整个模型,包括安装的图像。

old_photo = Photo.find(id)   
new_photo = Photo.new(old_photo.attributes)

class Photo
  include Mongoid::Document
  mount_uploader :image, ImageUploader
end

但是如何复制已安装的图像及其所有版本?即创建照片的精确副本,而不是使用相同的副本。(因为它们可以稍后更改)

这个问题类似:https ://stackoverflow.com/questions/7287905/duplicate-an-image-on-amazon-s3-that-was-uploaded-using-carrierwave-fog-and-rai

他从 aws-s3 gem 询问 AWS::S3::S3Object.copy ,这可以用来实现这个吗?如果是这样,如何?

我正在使用雾连接到 S3,可以使用雾来完成吗?如果是这样,怎么做?

更新:

new_photo = Photo.new(old_photo.attributes)
new_photo.image.download!(old_photo.image_url)
new_photo.store_image!

raise new_photo  
=> <#Photo _id: 4f1ff69566eaa70ed800001d, image: nil>
raise new_photo.image  
=> https://x.s3.amazonaws.com/uploads/photo/image/4f1ff76566eaa70ed8000020/file.png

知道为什么 new_photo 上的图像为零,而我仍然可以访问它吗?

4

0 回答 0