![](/img/trans.png)
[英](Python) How to upload files to dropbox folder using API withoud SDK
[英]Download files from Dropbox Team folder using Python SDK
我正在嘗試從 Dropbox Team 文件夾下載文件,按照 StackOverflow 不同帖子的建議,我嘗試使用 files_list_folder() 創建訪問密鑰,但是,dropboxTeam 類無法訪問此方法。
dbx = dropbox.DropboxTeam(_dropbox_token)
dbx.files_list_folder() # here this method not showing
所以,幫我做吧。 整個想法是從文件夾的文件夾中獲取文件列表,循環遍歷它們並下載。
files_list_folder
方法在特定 Dropbox 用戶的帳戶上運行,而不是在整個 Dropbox 團隊上運行,因此它只存在於dropbox.Dropbox
,而不存在於dropbox.DropboxTeam
。 這同樣適用於files_list_folder_continue
、 files_download
等。
如果您只需要連接到個人 Dropbox 帳戶以訪問該帳戶中的文件(無論該帳戶是否屬於 Dropbox Business 團隊),您可以注冊一個“ Dropbox API ”應用程序並使用以下命令直接創建一個dropbox.Dropbox
對象連接到您的應用程序的任何用戶的訪問令牌。
如果您確實需要能夠連接到整個 Dropbox Business 團隊的任何成員,您應該注冊一個“ Dropbox Business API ”應用並使用生成的訪問令牌創建一個dropbox.DropboxTeam
對象。 該對象適用於整個團隊,但您可以使用“團隊成員文件訪問”功能通過DropboxTeam.as_user
或DropboxTeam.as_admin
方法訪問特定成員的帳戶。
所以總結一下:
dbx = dropbox.Dropbox(_dropbox_token)
dbx.files_list_folder()
dbx = dropbox.DropboxTeam(_dropbox_token).as_user(member_id)
dbx.files_list_folder()
此外,有關如何訪問 Dropbox 帳戶的不同部分(例如團隊文件夾)的信息,請查看命名空間指南和內容訪問指南。 要設置命名空間指南中提到的Dropbox-API-Path-Root
標頭,請使用Dropbox.with_path_root
方法。
對於下面的 Dropbox Business API,python 代碼有助於從 Dropbox 下載文件。
#功能
def dropbox_file_download(access_token,dropbox_file_path,local_folder_name):
try:
dropbox_file_name = dropbox_file_path.split('/')[-1]
dropbox_file_path = '/'.join(dropbox_file_path.split('/')[:-1])
dbx = dropbox.DropboxTeam(access_token)
# get the team member id for common user
members = dbx.team_members_list()
for i in range(0,len(members.members)):
if members.members[i].profile.name.display_name == logged_user_name:
member_id = members.members[i].profile.team_member_id
break
# connect to dropbox with member id
dbx = dropbox.DropboxTeam(access_token).as_user(member_id)
# list all the files from the folder
result = dbx.files_list_folder(dropbox_file_path, recursive=False)
# download given file from dropbox
for entry in result.entries:
if isinstance(entry, dropbox.files.FileMetadata):
if entry.name == dropbox_file_name:
dbx.files_download_to_file(local_folder_name+entry.name, entry.path_lower)
return True
return False
except Exception as e:
print(e)
return False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.