【问题标题】:Dropbox api upload fileDropbox api 上传文件
【发布时间】:2022-01-27 08:21:51
【问题描述】:

我正在尝试使用 python API 将“txt”文件上传到保管箱。 在到处寻找之后,我知道我没有发现任何有用的东西,或者我只是不明白如何让它发挥作用。

with open('Hello.txt') as f:
    dbx.files_upload(f,'/PythonClass/data_src')

我也试过这个:

with open('Hello.txt') as f:
    dbx.files_upload(f.read(), folder_py_src, mode=WriteMode('overwrite'))

还有这个:

with open('Hello.txt', "rb") as f:
    dbx.files_upload(f.read(), folder_py_src, mode=WriteMode('overwrite'))

我收到一个错误:

 Traceback (most recent call last):
  File "c:\Users\User\Desktop\pytask\classprojectdropbox", line 46, in <module>
    dbx.files_upload(f.read(), folder_py_src, mode=WriteMode('overwrite'))     
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\dropbox\base.py", line 2931, in files_upload
    r = self.request(
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\dropbox\dropbox_client.py", line 348, in request
    raise ApiError(res.request_id,
dropbox.exceptions.ApiError: ApiError('2d7014d399964557a8658a49ae90ef75', UploadError('path', UploadWriteFailed(reason=WriteError('conflict', WriteConflictError('folder', None)), upload_session_id='pid_upload_session:TOKEN')))

【问题讨论】:

  • 将其更改为with open("Hello.txt", "rb") as f: 有帮助吗?
  • 我也试过了,没用

标签: python api upload dropbox


【解决方案1】:

files_uploadf 参数需要 bytes,因此您应该确保以二进制文件 ("rb") 打开文件,然后以 read 输出数据,如下所示:

with open('Hello.txt', "rb") as f:
    dbx.files_upload(f.read(), folder_py_src, mode=WriteMode('overwrite'))

【讨论】:

  • 我以前试过。它对我也不起作用。我添加了我得到的完整错误
  • 我的答案是针对您发布的原始“TypeError:预期 request_binary 作为二进制类型,得到 ”错误。我能够重现该错误,并且能够使用我发布的代码版本解决它。不过,我看到您现在编辑帖子时出现了不同的错误。
  • 您发布的新的“路径/冲突/文件夹”错误表明上传失败,因为指定路径下已有文件夹。您需要指定不指向文件夹本身的path。请注意,您的 path 值也应包含您想要的文件名,例如 "/folder/file.ext",而不仅仅是 "/folder"
  • 我爱你!我不敢相信这是问题所在,感谢您抽出宝贵的时间。
猜你喜欢
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多