2011-11-22 64 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

相关问题