2011-11-22 59 views
2

就在最近,我在想和想知道,Dropbox如何將我的文件上傳到它的S3存儲,以及如何組織這個文件?Dropbox如何將數據上傳到服務器?

讓我們暫時完全忘記同步問題,並將問題縮小到一個S3存儲桶。

假設在該存儲桶的根目錄中有許多文件夾,每個文件夾都屬於任意用戶。

現在,如果該用戶想要將文件上傳到他的文件夾......這是怎麼發生的內部?我的意思是,Dropbox不能將硬編碼的Amazon S3訪問憑證/密鑰存儲到應用程序中(無論是在ios還是Windows上),因爲它可能會被反向設計並因此暴露出來。

對此有何看法?

謝謝!

+0

我知道這個問題是舊的,可​​能不會得到答覆。但只是想知道。 Dropbox是否直接存儲到S3或將後端數據庫中的文件信息存儲起來。 –

回答

1

以同樣的方式,網站不允許用戶直接訪問他們的數據庫,而是提供可以控制權限和處理認證的界面,我相信Dropbox有一些您計算機上的客戶端與之交互的應用程序。他們的服務器守護進程將有權寫入磁盤,但是在計算機發送的任何內容寫入之前,您的計算機必須經過它(並且是安全性過程)。

+0

所以你所說的是,如果我要開發一個使用Dropbox的REST API並將圖像上傳到用戶文件夾的應用程序,會發生什麼情況是:1.我將POST調用發送到Dropbox REST API。 2.如果我提供的憑證是正確的,3. Dropbox服務器接受我的2兆字節的圖像數據... 4.通過向Amazons S3 REST API發送另一個POST請求提供完全相同的2兆字節圖像來「重定向」請求數據...再? – pkluz

+0

我不知道我是否僅僅是在推翻這一點,但在我看來,讓API看起來像是一個令人難以置信的瓶頸,讓它首先接收大量的數據,然後寫入它自己的存儲/內存中,然後將數據轉發給亞馬遜。這就是爲什麼我想出了上述問題。難道你不能直接以某種方式將數據直接上傳到Amazon S3嗎? – pkluz

+1

沒有什麼可以說他們的Web服務沒有在數據保存到的相同框上運行。一旦執行認證,網絡程序就可以將數據從緩衝區直接傳輸到磁盤。任何一種額外的層總是會增加某種性能,但安全性幾乎總是一個額外的層:)。在瀏覽API文檔之後,看起來他們使用OAuth,所以是的,它是一個處理請求的Web服務。 – Corbin

相關問題