Я работаю над веб-приложением Python, которому необходимо импортировать большие (с точки зрения ограничений GAE) gzipped файлы с стороннего сайта на регулярной основе. Подумайте о том, как rdf экспортирует проект DMOZ, производящий регулярные промежутки времени.GAE: запланированный импорт большого gzip-файла с сайта третьей стороны
Это означает ежедневную выборку файла gzip размером 500+ МБ, ругание, разбор, обработку и сохранение результатов в хранилище данных GAE для последующего использования.
Каков правильный способ реализации этой функции в GAE, имея в виду пределы максимальной загрузки, времени обработки и т. Д.?
Вы не можете разобрать gzip в кусках, к сожалению. Он имеет заголовок, и вы не можете начать его чтение в середине потока. Контраст с bzip2, который является блочно-ориентированным. –
@Spike Кто сказал что-нибудь про чтение его в кусках? Вы можете прочитать его как поток; просто забирайте больше данных в буфер каждый раз, когда вы закончите. –
Позвольте мне посмотреть, понимаю ли я. Ваше предложение состоит в том, чтобы запланировать задание cron, которое будет выполнять задачу, которая должна загружать кусок gz-файла куском (chunksize <пределы размера urlfetch) как поток, gunzip поток, разбор и хранение. И задача должна закончиться в течение 10 минут. Это правильно? BTW: В соответствии с [документацией] (http://code.google.com/appengine/docs/python/urlfetch/overview.html#Quotas_and_Limits) максимальный размер ответа для извлечения URL-адреса составляет 32 мегабайта. Где вы видели 64MB? –