Я пытаюсь использовать Dropbox в качестве облачного хранилища файлов для приложения / скрипта. Сценарий, написанный на Python, должен взять PDF-файлы из Dropbox и использовать оболочку tika-python для преобразования в строку.
Я могу подключиться к API Dropbox и использовать метод files_download_to_file()
для загрузки PDF-файлов на диск, а затем использовать метод tika from_file()
, чтобы вытащить этот загружаемый файл с диска для обработки. Пример:
# Download ex.pdf to local disk
dbx.files_download_to_file('/my_local_path/ex_on_disk.pdf', '/my_dropbox_path/ex.pdf')
from tika import parser
parsed = parser.from_file('ex_on_disk.pdf')
Проблема в том, что я планирую запустить это приложение на чем-то вроде Heroku. Я не думаю, что смогу сохранить что-либо локально, а затем снова получить к нему доступ. Я не уверен, как получить что-то из API Dropbox, на которое может напрямую ссылаться оболочка tika, чтобы выполнить то же, что и выше. Я думаю, что в PHP SDK есть набор методов file_get_contents
и file_put_contents
, но в Python SDK, похоже, его нет.
Я пытался использовать разделяемые ссылки вместо имени файла, но это не сработало. Есть идеи? Я знаю, что есть также метод files_download
, который загружает объект FileMetadata
, но я понятия не имею, что с этим делать, и мне трудно найти больше об этом.
TLDR; Как я могу сослаться на файл в Dropbox со строкой имени файла, такой как 'example.pdf', чтобы использовать ее в другой функции, которая пытается прочитать файл с диска, не сохраняя этот файл Dropbox на диск?