使用aws-sdk将存储桶中的文件复制到回形针附件

时间:2013-04-29 18:32:54

标签: ruby-on-rails amazon-s3

我在aws S3中有一个文件要复制到活动记录回形针附件(作为不同存储桶中文件的副本)。

我使用aws-sdk gem:

引用了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:bucket / the_file.xls

未找到处理程序

obj.copy_to(my_model.some_file)为/file_name/original/missing.png:Paperclip::Attachment

抛出未定义的方法`scan'

1 个答案:

答案 0 :(得分:0)

我正在使用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)