Можно ли разрешить пользователям моего сайта загружать большие объемы файлов изображений из Amazon S3 через Flash / PHP / другие службы? - PullRequest
2 голосов
/ 27 июля 2010

Мой сайт позволяет пользователям загружать фотографии, которые я храню на Amazon S3. Я сохраняю исходную загрузку, а также оптимизированное изображение и эскиз. Я хочу, чтобы пользователи могли экспортировать все свои оригинальные версии по истечении срока действия подписки. Поэтому я думаю, что следующие проблемы возникают

  1. Может быть большой объем данных (возможно, около 10 ГБ)
  2. Как управлять процессом загрузки - например, убедиться, что он прерван, с чего начать снова, как проверить успешность загрузки файлов
  3. Должно ли это быть сделано с отдельными файлами или попробуйте заархивировать файлы и загрузить их как один файл или серию меньших заархивированных файлов.

Есть ли какие-нибудь инструменты, которые я могу использовать для этого? Я видел Fzip, который является библиотекой Actionscript для работы с zip-файлами. У меня запущен экземпляр EC2, который обрабатывает загрузку файлов, поэтому я могу использовать его и для загрузки - например, скопировать файлы в EC2 из S3, заархивировать их, затем загрузить их пользователю через Flash Downloader, использовать Fzip, чтобы распаковать папку zip на жесткий диск пользователя. 1011 *

Кто-нибудь сталкивался с подобной услугой / решением?

все отзывы оценены спасибо

1 Ответ

0 голосов
/ 27 июля 2010

Я не занимался этой проблемой напрямую, но мои первые мысли:

Flash или, возможно, jQuery могут быть использованы для собственного решения, когда клиент отправляет обратно информацию о том, что он получил, и сохраняет эту информацию в журнале базы данных.Вы можете также рассмотреть возможность использования Bit Torrent в качестве посредника, ваши пользователи могут загрузить бесплатный торрент-клиент, и вы можете исследовать торрент-сервис на стороне сервера (возможно, RivetTracker или PHPBTTracker).Я не уверен, насколько детализированы эти данные, но, по крайней мере, поскольку вы уверены, что имеете дело с одним пользователем, если он станет сеялкой, вы можете стереть старый файл и начать со следующего.

Разбейте файлы размером более 2 ГБ на куски по 2 ГБ, чтобы приспособить пользователей с дисками FAT32, которые не могут обрабатывать файлы размером ~ ~ 4 ГБ.Разрежьте до 1 ГБ, если пространство на сервере ограничено, сохраняя эталон того, что было упаковано из S3 через запись в базе данных

Fzip - это круто, но я думаю, что это больше для архивирования на стороне клиента.PHP имеет библиотеки ZIP и RAR (http://php.net/manual/en/book.zip.php), которые вы можете использовать для округления файлов на стороне сервера. Я думаю, что любое решение, которое вы найдете, потребует от вас самостоятельно управлять безопасностью, сохраняя записи в базе данных о том, кто что получил изагрузка ключей. В противном случае люди могут использовать ваши ресурсы как систему доставки файлов.

Удачи!

...