Код состояния 413 указывает на то, что полезная нагрузка была слишком большой. Метод files_upload
официально поддерживает только файлы размером до 150 МБ. Вам нужно будет использовать upload_sessions для больших файлов.
Вот базовый пример c, который использует Dropbox Python SDK для загрузки файла в Dropbox API из локального файла, указанного file_path
, к удаленному пути, указанному dest_path
. Он также выбирает, использовать ли сеанс загрузки на основе размера файла:
f = open(file_path)
file_size = os.path.getsize(file_path)
CHUNK_SIZE = 8 * 1024 * 1024
if file_size <= CHUNK_SIZE:
print dbx.files_upload(f.read(), dest_path)
else:
upload_session_start_result = dbx.files_upload_session_start(f.read(CHUNK_SIZE))
cursor = dropbox.files.UploadSessionCursor(session_id=upload_session_start_result.session_id,
offset=f.tell())
commit = dropbox.files.CommitInfo(path=dest_path)
while f.tell() <= file_size:
if ((file_size - f.tell()) <= CHUNK_SIZE):
print dbx.files_upload_session_finish(f.read(CHUNK_SIZE),
cursor,
commit)
break
else:
dbx.files_upload_session_append_v2(f.read(CHUNK_SIZE),
cursor)
cursor.offset = f.tell()
f.close()
Примечание: это должно служить только примером. Он не был тщательно протестирован и не поддерживает обработку ошибок.