Экспорт фотографий ... как эффективно обрабатывать такие запросы? - PullRequest
1 голос
/ 17 апреля 2011

Я работаю над веб-приложением, которое инвентаризирует ваши домашние предметы.Я там на 90%, за исключением того, что мне нужно найти способ экспортировать фотографии, если пользователь выберет.Мне удалось экспортировать элементы в файл CSV, но что хорошего в этом, если у них не может быть своих фотографий?В настоящее время я использую MongoDB для бэкэнда, но независимо от того, как я их храню, мне нужен способ, когда пользователь нажимает кнопку «Экспорт фотографий», и он получает сжатие в один файл для загрузки пользователем.

Меня беспокоит только то, что если они сохранили сотни фотографий?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Чтобы не сорвать ваш php-процесс, я бы рекомендовал вам выгружать файлы из MongoDB один за другим во временный каталог файловой системы, а затем использовать exec в сочетании с tar или zip, чтобы включитьэто в сжатый архив, который вы отправляете пользователю.

Конечно, это может привести к довольно плохой DDoS-атаке вашего сайта, так что вам лучше написать это осторожно, то есть, если у пользователя естьболее 100 изображений, использование очереди с Gearman или каким-либо сервером RabbitMQ может быть хорошей идеей, и тогда вы можете сказать им, что они получат электронное письмо, как только их ссылка для скачивания архива будет готова или что-то еще?Я полагаю, что экспортировать все ваши фотографии не должно быть повседневной задачей, поэтому это может быть приемлемо.

0 голосов
/ 17 апреля 2011

Вы можете записать их последнюю попытку экспорта архива и разрешить это только один раз в час или около того (они могут сделать что-то не так в первый раз, поэтому всегда полезно не иметь слишком большой срок действия).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...