使用aws-sdk将存储桶中的文件复制到回形针附件
问题描述:
我想在aws S3中将文件复制到活动记录回形针附件(作为不同存储桶中文件的副本)。使用aws-sdk将存储桶中的文件复制到回形针附件
我必须使用aws-sdk创业板S3的参考对象:
s3 = AWS::S3.new(Rails.application.config.s3_creds)
obj = s3.buckets(uploads_bucket).objects.first
说我my_model
有
has_attached_file :some_file
的活动记录模式如何复制obj
到my_model.some_file
?
my_model.some_file = obj
抛出: 没有找到处理程序为 AWS :: S3 :: S3Object:桶/ the_file.xls
obj.copy_to(my_model.some_file)
抛出未定义的方法'扫描”用于/ FILE_NAME /原厂/失踪.png:回形针::附件
答
我使用AWS :: S3 :: S3Object#copy_to(target_obj)复制文件,并通过在设置一些列值之后调用附件上的#s3_object()来获取目标obj并保存它:
my_model.some_file_file_name = obj.key
my_model.some_file_file_size = obj.content_length
my_model.some_file_content_type = obj.content_type
my_model.some_file_updated_at = obj.last_modified
my_model.save
obj.copy_to(my_model.some_file.s3_object)