Я пытаюсь обрабатывать URI на GAE гибкой, в частности, я обрабатываю pdf файлы через pdf2image
. Всякий раз, когда я использую URI в pdf2image convert_from_path
, GAE бросает
Файл не найден
но если я делаю тот же процесс на своей локальной машине, он выполняется без ошибок. Должен ли я установить что-то в Google App Engine, чтобы это разрешить?
где находится этот pdf файл?
Ваш заголовок говорит "внешний URI", но документы pdf2image
для convert_from_path
похоже, указывают на то, что этот файл находится в вашем коде.
Если файл действительно сидит в коде проекта и развертывается с вашим проектом, попробуйте использовать его для преобразования относительного пути в абсолютный:
curr_dir = os.path.dirname(os.path.realpath(__file__))
images = convert_from_path(curr_dir+'/my/relative/path/example.pdf')
Редактировать:
Для pdf файлов в GCS я бы обрабатывал загрузку отдельно от gcs, а затем использовал convert_from_bytes
вместо convert_from_path
Вы установили соединение с GCS следующим образом:
https://cloud.google.com/appengine/docs/flexible/python/using-cloud-storage
Используйте эту функцию, чтобы получить кадр GCS:
И затем используйте эту функцию, чтобы фактически загрузить байты:
Так что-то вроде этого:
client = storage.Client()
bucket = client.get_bucket('my-bucket')
blob = bucket.get_blob('/path/to/blob.pdf')
bytes = blob.download_as_string()
images = convert_from_bytes(bytes)
pdf2image
- это просто оболочка Python для команды bash pdftoppm
. Вы получили эту настройку в вашей среде GAE flex?