Ruby AWS :: S3 :: S3Object (aws-sdk): существует ли метод для потоковой передачи данных, как в aws-s3? - PullRequest
6 голосов
/ 08 марта 2012

В aws-s3 есть метод (AWS :: S3 :: S3Object.stream), который позволяет вам передавать файл на S3 в локальный файл.Мне не удалось найти подобный метод в aws-sdk.

, то есть в aws-s3, я делаю:

File.open(to_file, "wb") do |file|
  AWS::S3::S3Object.stream(key, region) do |chunk|
    file.write chunk
  end
end

Метод AWS :: S3: S3Object.read делаетвзять блок в качестве параметра, но, похоже, ничего с ним не делать.

Ответы [ 2 ]

5 голосов
/ 09 августа 2012

Драгоценный камень aws-sdk теперь поддерживает частичное чтение объектов в S3. В следующем примере приведена демонстрация:

s3 = AWS::S3.new
File.open(to_file, "wb") do |file|
  s3.buckets['bucket-name'].objects['key'].read do |chunk|
    file.write chunk
  end
end
2 голосов
/ 20 марта 2012

В настоящее время не официально. Я нашел эту тему на официальном форуме AWS Ruby:

Поддерживает ли рубин AWS гем потоковую загрузку с S3 . Цитирование сотрудников AWS:

К сожалению, нет хорошего решения, запеченного в драгоценном камне aws-sdk. Мы ищем способ сделать это намного проще для конечного пользователя.

В кусках есть пример кода для загрузки. Возможно, вы захотите взглянуть на это для вдохновения.

...