我正在编写一个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的帖子,但无法成功应用它们。
答案 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