2

S3に保存されている.tar.gzであるバックアップファイルからデータベースを復元するrakeタスクを書いています。

ステップ1、S3からファイルをダウンロードしますか?right_awsのS3Interfaceを使用しています。:objectのファイルコンテンツを返す単純なgetを試しました。

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

エラー:レーキが中止されました!ASCII-8BITからUTF-8への「\x8B」

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 に答える