Я разрабатываю веб-сайт с помощью Python Flask framework, который будет обрабатывать PDF-файлы. Я храню PDF-файлы в MongoDB, которая отлично работает, когда мне нужно предоставить их посетителям. Теперь мне нужно извлечь текст и изображения, для чего я использую библиотеку pdfminer. Когда я использую pdf2txt.py и предоставляю файл из файла системы, эта строка (контекст здесь) работает в значительной степени немедленно:
for page in PDFPage.get_pages(file('ticket.pdf', 'rb'), pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True): pass
но когда я редактирую код, чтобы предоставить объект GridFS из моей MongoDB, вторая строка (поэтому после завершения извлечения) занимает около 8 секунд (результат идентичен приведенному выше коду):
document = UserDocument.objects.first()
for page in PDFPage.get_pages(document.file_, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True): pass
Меня это удивляет, потому что я предполагал, что получение файла из моей MongoDB или из файловой системы вернет одинаковый результат (в браузере он отображается одинаково), но, по-видимому, это не так. такой же.
Кто-нибудь знает, в чем разница между ними, из-за которой этот вызов занимает так много времени, и, что более важно, как я могу его решить? Все советы приветствуются!