2017-04-23 103 views
0

注:我發佈在dropboxforum在:https://www.dropboxforum.com/t5/API-support/Masking-Dropbox-URL/m-p/217458#M11358

我們有一個Dropbox商務帳戶。Dropbox網址掩碼

我們希望將多個文件從我們的網站服務器移動到Dropbox並使用Dropbox作爲存儲解決方案。

當用戶想要下載其中一個文件時,我們希望將URL指向我們的域並直接從保存箱中下載文件。

我們的網站是基於在ASP.Net(C#)

我發現瞭如何做到這一點使用舊的公用文件夾幾個解決方案,但我一直沒能找到一個更新的解決方案。

我並不介意讓這些文件公開共享,甚至在每個共享鏈接中保留數據庫中的表格。 但我寧願網址:代替
https://www.OurDomain.com/File?id=1

https://www.dropbox.com/s/fxwygu566u3u2l6/doc.pdf?dl=0

編輯: Here's an article確切解釋什麼是我想要做的,但其基於Dropbox的老公共文件夾,當你能預測Dropbox中的網址。

回答

0

您可以使用DownloadAsync方法,它是Dropbox API的一部分。基於來自Dropbox.NET tutorial一個例子,你可以這樣做:

async Task Download(DropboxClient dbx, string folder, string file) 
{ 
    using (var response = await dbx.Files.DownloadAsync(folder + "/" + file)) 
    { 
     return response.GetContentAsByteArrayAsync(); 
    } 
} 
+0

我們的文件是這麼大,這是solutuon超時。我們實現了一個類似的解決方案下載塊[鏈接](http://stackoverflow.com/questions/43208069/dropbox-net-downloading-large-files-using-getcontentasstreamasync)它的工作原理,但我們希望直接從Dropbox下載並刪除來自我們網站服務器的額外工作。 – JohnnyNPC

+0

如果文件很大,請實現一個獨立的機制來請求,在後臺下載,緩存(到臨時目錄)並提供文件。發生'HttpApplication.Application_Start'事件時清除臨時目錄。在'Global'類中創建這個Downloader類的'內部靜態實例'。當文件正在下載時向用戶顯示「正在提取文件/請稍候」消息。 – Serge

+0

爲避免下載文件服務器端,您可以創建一個[共享鏈接](https://www.dropbox.com/developers/documentation/http/documentation#sharing-create_shared_link_with_settings)並使用[HttpResponse.Redirect ](https://msdn.microsoft.com/en-us/library/a8wa7sdt.aspx)方法。這會將Dropbox網址公開給您的用戶。 – Serge