2011-01-25 1 views
14

Я знаю, что Amazon S3 добавил многокомпонентную загрузку для огромных файлов. Замечательно. То, что мне также нужно, - это аналогичная функциональность на стороне клиента для клиентов, которые получают частичный способ загрузки гигабайтного файла плюс ошибки.Мне нужны Multi-Part DOWNLOADS от Amazon S3 для огромных файлов

Я понимаю, что у браузеров есть некоторый уровень повторной попытки и возобновление работы, но когда вы говорите об огромных файлах, я бы хотел, чтобы они могли забрать, где они остановились, независимо от типа ошибки.

Любые идеи?

Спасибо, Brian

+0

Я завожусь полезный бит образца кода или SDK документации ж/о везении. Основная проблема заключается в том, что Amazon не создает ContentMD5, когда вы запрашиваете диапазон данных. Поэтому, если вы частично загрузили файл, то вы действительно хотите рассчитать MD5 о том, что вы загрузили, а затем спросить Amazon, имеет ли этот диапазон байтов тот же хеш, чтобы вы могли просто добавить остальную часть файла из Amazon. Нет такого API для («Эй, Амазонка, дайте мне MD5 для этого диапазона байтов в файле на S3» существует AFAIK :-( – kenyee

+3

Привет Брайан. Если бы вы могли ответить на ваш вопрос, можете ли вы выбрать правильный ответ? Помогает другим людям, которые приходят на страницу, ища такую ​​же помощь. – rICh

ответ

10

S3 поддерживает стандарт HTTP "Range" заголовок, если вы хотите построить собственное решение.

S3 Getting Objects

+1

Java API: http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/GetObjectRequest.html# setRange (длинный,% 20long) –

2

Я использую aria2c. Для частного контента вы можете использовать «GetPreSignedUrlRequest» для генерации временных частных URL-адресов, которые вы можете передать в aria2c

0

Примечание: Для пользователей Ruby, только

Попробуйте aws-sdk камень Руби, и скачать

object = AWS::S3::Object.new(...) 
object.download_file('path/to/file.rb') 

Поскольку загрузить большой файл с многоголосных по умолчанию.

файлы размером более 5 МБ загружаются с помощью MULTIPART методу

http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Object.html#download_file-instance_method

+0

что касается java? –

Смежные вопросы