Загруженные файлы перезаписываются в Dropbox - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь загрузить пользовательские файлы в DropBox в Django. Когда я использую встроенную функцию 'open ()', она выдает следующее исключение:

expected str, bytes or os.PathLike object, not TemporaryUploadedFile

Если нет, файл успешно загружен, но пуст (режим записи).

ОБРАБОТКА ЗАГРУЗКИ:

def upload_handler(DOC, PATH):
    dbx = dropbox.Dropbox(settings.DROPBOX_APP_ACCESS_TOKEN)

    with open(DOC, 'rb') as f:
        dbx.files_upload(f.read(), PATH)
        dbx.sharing_create_shared_link_with_settings(PATH)

Как загрузить файлы или передать mode в DropBox API без перезаписи?

1 Ответ

0 голосов
/ 11 июня 2019

Чтобы указать режим записи при загрузке файлов в Dropbox, передайте требуемый WriteMode методу files_upload в качестве параметра mode.Это выглядело бы так:

dbx.files_upload(f.read(), PATH, mode=dropbox.files.WriteMode('overwrite')

Это только контролирует, как Dropbox фиксирует файл (для информации см. the WriteMode docs );он не контролирует, какие данные вы загружаете.В вашем коде он загружает все, что возвращается f.read(), поэтому убедитесь, что это именно то, что вы ожидаете.

...