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
и объект-курсор с данными о сеансе.
Я совершенно заблудился в документации, и даже исходный код не очень помогает понять, как пакет работает для загрузки нескольких файлов (а не для загрузки тяжелых файлов). Что мне здесь не хватает?