2017-06-01 189 views
0

我正在使用Dropbox的Python API。我的最終目標是,通過指向公共收件箱文件夾的鏈接(未保存在我的Dropbox帳戶中),我的程序可以將每個圖像下載到本地桌面文件夾。Dropbox Python API:下載公共Dropbox文件夾

許多Dropbox API調用都需要一個路徑。目前,我正在通過連接文件夾ID和名稱來構建路徑:「可以使用斜槓(例如'id:abc123xyz/hello.txt')」構建與文件夾ID相關的路徑。我通過致電/get_shared_link_metadata的郵寄請求來接收身份證和姓名。

哈弗,當我嘗試下載(通過下面的代碼):

with open("/Users/______/Desktop/ok.jpeg", "wb") as f: 
    metadata, res = dbx.files_download(path='id:jSheWaU4yeYAAAAAAAADHw/DSC_0190.JPG') 
    f.write(res.content) 

我得到這個錯誤:

dropbox.exceptions.ApiError: ApiError('6c829586fd97ebc6e18aa40336e3aa94', DownloadError('path', LookupError('not_found', None)))

任何有識之士將不勝感激!謝謝。

回答

0

這是構建相對於父文件夾ID的文件路徑的有效語法。

此錯誤表示該路徑在連接用戶的帳戶中不存在。在這種情況下需要檢查的幾件事:

  • 如果id:jSheWaU4yeYAAAAAAAADHw該文件或父文件夾的ID?如果它是文件本身的ID,則不需要附加文件名,而應該僅提供id:jSheWaU4yeYAAAAAAAADHw
  • 在連接的用戶帳戶中是否存在該路徑中的某些內容?確保你有正確的文件名(假設id:jSheWaU4yeYAAAAAAAADHw是父文件夾的ID),該路徑上有東西,並且你正在查看正確的帳戶。
+0

我實際上試圖下載不在連接的用戶帳戶中的公共文件夾,這就是爲什麼我不知道爲他們設置「路徑」的原因。我只是在我的帖子中修改了語言,以便更清楚。 – vchen

+0

'files_download'方法只能訪問連接用戶帳戶中的文件。您也可以使用['sharing_get_shared_link_file'](https://dropbox-sdk-python.readthedocs.io/en/latest/moduledoc.html#dropbox.dropbox.dropbox.sharing_get_shared_link_file)從共享鏈接下載文件。 – Greg

+0

我已經嘗試sharing_get_shared_link_file,但我收到錯誤「shared_link_is_directory」,因爲該函數僅適用於文件對象。我試圖訪問文件夾中的文件,給定一個文件夾的URL。這裏的困難在於,與在文件夾中搜索相關的所有功能都假定該文件夾位於連接用戶的帳戶中,並且需要該文件夾的路徑。 – vchen