我尝试将整个文件夹上传到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')))
答案 0 :(得分:1)
这里有几点需要注意:
files
上进行迭代,因此您不会上传/创建dirs
。path
中通过/2/files/upload上传的文件显式创建任何父文件夹的文件夹。这些将通过上传自动创建。disallowed_name
表示:由于其名称,Dropbox不会保存文件或文件夹。
因此,您可能会收到此错误,因为您尝试上传被忽略的字段,例如".DS_STORE"
。您可以在this help article under "Ignored files"中找到有关这些内容的更多信息。