Dropbox Python API Загрузить несколько файлов

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

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

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

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 и объект-курсор с данными о сеансе.

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

0 ответов

Другие вопросы по тегам