我正在尝试将用户文件上传到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而不被覆盖?
答案 0 :(得分:0)
要在将文件上传到Dropbox时指定写模式,请将所需的WriteMode
作为mode
参数传递到files_upload
方法。看起来像这样:
dbx.files_upload(f.read(), PATH, mode=dropbox.files.WriteMode('overwrite')
这仅控制Dropbox提交文件的方式(有关信息,请参见the WriteMode
docs);它无法控制您要上传的数据。在您的代码中,它正在上传f.read()
返回的所有内容,因此请确保这就是您期望的样子。