UploadWriteFailed(reason = WriteError(' disallowed_name',None)

时间:2017-10-07 11:18:41

标签: python dropbox

我尝试将整个文件夹上传到Dropbox但只上传了文件。我应该以编程方式创建文件夹还是可以解决文件夹上传这么简单?谢谢

   import os
   import dropbox

   access_token = '***********************'

   dbx = dropbox.Dropbox(access_token)

   dropbox_destination = '/live'
   local_directory = 'C:/Users/xoxo/Desktop/man'

   for root, dirs, files in os.walk(local_directory):

       for filename in files:
           local_path = root + '/' + filename
           print("local_path", local_path)
           relative_path = os.path.relpath(local_path, local_directory)
           dropbox_path = dropbox_destination + '/' + relative_path

           # upload the file
           with open(local_path, 'rb') as f:
               dbx.files_upload(f.read(), dropbox_path)

错误:

dropbox.exceptions.ApiError: ApiError('xxf84e5axxf86', UploadError('path', UploadWriteFailed(reason=WriteError('disallowed_name', None), upload_session_id='xxxxxxxxxxx')))

1 个答案:

答案 0 :(得分:1)

[交叉链接供参考:https://www.dropboxforum.com/t5/API-support/UploadWriteFailed-reason-WriteError-disallowed-name-None/td-p/245765]

这里有几点需要注意:

  • 在您的示例中,您只是在files上进行迭代,因此您不会上传/创建dirs
  • /2/files/upload端点仅接受文件上传,而不接受文件夹。如果要创建文件夹,请使用/2/files/create_folder_v2。您不需要为path中通过/2/files/upload上传的文件显式创建任何父文件夹的文件夹。这些将通过上传自动创建。
  • 根据/2/files/upload documentationdisallowed_name表示:
  

由于其名称,Dropbox不会保存文件或文件夹。

因此,您可能会收到此错误,因为您尝试上传被忽略的字段,例如".DS_STORE"。您可以在this help article under "Ignored files"中找到有关这些内容的更多信息。