Right_aws从S3获得.tar.gz

时间:2012-08-11 22:41:38

标签: ruby amazon-s3 rake

我正在编写一个rake任务,用于从存储在S3中的.tar.gz备份文件中恢复数据库。

第1步,从S3下载文件,对吗?我正在使用right_aws's S3Interface。 我尝试了简单的get,它返回文件内容:object。

obj = s3.get(s3_config[:s3_bucket], s3_file_name)
temp_file.write obj[:object]

错误:     耙子流产了! “\ x8B”从ASCII-8BIT到UTF-8

我看到一些关于使用GzipWriter和String#unpack的帖子,但无法成功应用它们。

1 个答案:

答案 0 :(得分:6)

用'wb'标志打开文件就可以了。

  temp_file = File.new(File.join(tmp_dir, 'temp.tar.gz'), 'wb')
  obj = s3.get(s3_config[:s3_bucket], s3_file_name)
  temp_file.write obj[:object]
  temp_file.close