У меня есть следующий фрагмент кода:Aws :: S3 :: Ошибки :: BadDigest при попытке сохранить TempFile
tempfile = Tempfile.new(export_file.filename)
begin
tempfile.write(contents)
file_storage_service.store(export_file.filename, tempfile)
ensure
tempfile.close!
end
и метод store
выглядит следующим образом:
def store(filename, file)
client = Aws::S3::Client.new(options)
object = Aws::S3::Object.new(bucket_name, filename, client: client)
object.upload_file(file)
end
Мой вопрос что я, кажется, получаю ошибку Aws::S3::Errors::BadDigest
на одной из моих облачных машин, но локально работает, как ожидалось.
Я считаю, что временный файл отсоединен, когда вызывается метод store
, в результате AWS сравнивает два разных дайджеста, но я не очень уверен в этом. У меня есть Ruby 2.1.6 на обеих машинах, на локальной - OS X и облачный Linux.
Что можно сделать, чтобы исправить это? И в чем причина проблемы?
P.S .: Я пробовал оба close!
и close
в tempfile с теми же результатами.