使用 Oauth2 代码上传的 Dropbox 将加载到'wrong'文件夹



我正在尝试使用python和Dropbox API将文件上载到共享文件夹。

我遇到的问题是,我已经将目标文件名指定为:

'/<shared folder name>/uploaded.txt'

但它上传到:

'Apps/<app name>/<shared folder name>/uploaded.txt'

这不是共享文件夹,我特别想使用共享文件夹。如何更改代码以便将其上载到共享文件夹?

import webbrowser
from dropbox import Dropbox
from dropbox.files import WriteMode
from dropbox import DropboxOAuth2FlowNoRedirect
APP_KEY = '<my app key>'
APP_SECRET = '<my app secret>'
APP_TOKEN = '<my app token>'
def upload(dbx):
local_file = '<path to local file>'
remote_file = '/<shared folder name>/uploaded.txt'
with open(local_file, 'rb') as f_upload:
try:
foo = dbx.files_upload(f_upload.read(), remote_file, 
mode=WriteMode('overwrite'))
print('done ...', foo)
except:
print('Upload error')
def get_dbx_with_auth_code():
auth_flow = DropboxOAuth2FlowNoRedirect(APP_KEY, APP_SECRET)
authorize_url = auth_flow.start()
webbrowser.open(authorize_url)
auth_code = input('Authorization code: ').strip()
try:
oauth_result = auth_flow.finish(auth_code)
except:
print('Token error')
return None
dbx = Dropbox(oauth_result.access_token)
return dbx
if __name__ == '__main__':
dbx = get_dbx_with_auth_code()
upload(dbx)

如果您的代码正在上传到应用程序文件夹中(例如,如您所示,在'/Apps/<app name>'下(,这意味着您正在使用的访问令牌是针对具有"应用程序文件夹"权限的应用程序的。具有此权限的应用程序只能在为其创建的特殊应用程序文件夹中操作。您可以在此处找到有关不同Dropbox API应用程序权限的更多信息。

如果你需要在共享文件夹中操作,你需要注册一个应用程序以获得"完整Dropbox"权限,并切换到使用该应用程序的访问令牌。

最新更新