Я пытаюсь загрузить файлы в Amazon S3, используя AWS :: S3 , но я бы хотел сначала сжать их с помощью Zlib.AWS :: S3 ожидает, что его данные будут потоковым объектом, то есть вы обычно загружаете файл с чем-то вроде
AWS::S3::S3Object.store('remote-filename.txt', open('local-file.txt'), 'bucket')
(Извините, если моя терминология отключена; на самом деле я мало что знаю о Ruby.Я знаю, что могу zlib-сжать файл с чем-то вроде
data = Zlib::Deflate.deflate(File.read('local-file.txt'))
, но передача data
в качестве второго аргумента S3Object.store
, похоже, не делает то, что я думаю.(Загрузка идет нормально, но когда я пытаюсь получить доступ к файлу через веб-браузер, он не возвращается корректно.) Как заставить Zlib дефлировать в поток, или любой другой объект, который S3Object.store
хочет?