2

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

第 1 步,从 S3 下载文件,对吗?我正在使用right_aws 的 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 的帖子,但无法成功应用它们。

4

1 回答 1

7

使用“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
于 2012-08-12T21:04:09.317 回答