上传的文件在Dropbox中被覆盖

时间:2019-06-11 13:32:51

标签: python django dropbox-api

我正在尝试将用户文件上传到Django中的DropBox。当我使用内置的'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 :(得分:0)

要在将文件上传到Dropbox时指定写模式,请将所需的WriteMode作为mode参数传递到files_upload方法。看起来像这样:

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

这仅控制Dropbox提交文件的方式(有关信息,请参见the WriteMode docs);它无法控制您要上传的数据。在您的代码中,它正在上传f.read()返回的所有内容,因此请确保这就是您期望的样子。