Dropbox Python API Загрузить несколько файлов - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь загрузить набор pd.DataFrames в формате CSV в папку в Dropbox, используя Dropbox Python SDK (v2).Набор файлов не очень большой, но его много.Использование пакетов поможет сократить вызовы API и выполнить рекомендации разработчика, изложенные в документации :

. «Идея состоит в том, чтобы группировать одновременные загрузки файлов в пакеты, где файлы вкаждая партия загружается параллельно через несколько запросов API, чтобы максимизировать пропускную способность, но весь пакет фиксируется в одном асинхронном вызове API, что позволяет Dropbox максимально эффективно координировать получение и освобождение блокировок пространства имен для всех файлов в пакете."

После нескольких ответов в SO (см. Наиболее актуальную для моей проблемы здесь ) и этот ответ от сопровождающих SDK на форуме Dropbox Iпопробовал следующий код:

commit_info = []
for df in list_pandas_df: 
    df_raw_str = df.to_csv(index=False)
    upload_session = dbx.upload_session_start(df_raw_str.encode())
    commit_info.append(
            dbx.files.CommitInfo(path=/path/to/db/folder.csv
    )

dbx.files_upload_finish_batch(commit_info)

Тем не менее, при чтении строки документации files_upload_finish_batch я заметил, что функция принимает в качестве аргумента только список CommitInfo ( документация ), чтосбивает с толку, так как не пакетная версия (files_upload_session_finish) действительно принимает объект CommitInfo с path и cursor объект с данными о сеансе.

Я довольно потерян в документации, и даже исходный код не так полезен, чтобы понять, как пакет работает для загрузки нескольких файлов (а не для загрузки тяжелых файлов).Что мне здесь не хватает?

...