在流行的BaaS中使用自己的数据存储的方法

时间:2012-08-18 00:28:23

标签: database mobile amazon-web-services data-storage

我们正在开发一个应用程序,要求客户端(移动设备)将大小为5MB或更大的文件发送到服务器组件进行处理,我们希望得到以下建议:

有没有办法将Backend-as-a-Service(BaaS)平台与我们自己的数据存储相结合(托管在AWS的特定情况下)?我们基本上更愿意将来自客户端的文件直接发送到云中我们自己的数据库,而不是存储在BaaS服务器中。 换句话说,我们需要一个BaaS平台或允许分拆/绕过其数据存储功能的解决方案,以便我们只能将BaaS用于其余的设施(例如客户端身份验证,REST API等)。登记/> 我们在EC2中拥有自己的服务器,这些服务器是文件主要处理部分所需要的,只需要BaaS平台就可以在短时间内启动我们的应用程序。将文件从BaaS平台自己的数据存储中提取到EC2服务器会导致整体延迟开销以及大多数情况下的额外带宽成本。

1 个答案:

答案 0 :(得分:1)

在构建我的应用程序时,我遇到了类似的困境。在我的情况下,我不得不上传和存储用户上传的照片,我不想自己构建后端。因此,我决定使用Amazon S3来存储用户上传的照片并使用SimpleDB,因为它比使用MySQL后端提供了更大的灵活性和易用性。现在,显然,SimpleDB不是后端即服务平台,但我一直在寻找与您相同的便利性。

所以我建议您使用像Parse这样的后端即服务平台(具有出色的免费增值模式),CloudMine(另一项优质服务,但有严格的限制在免费增值模式上,即只有500个免费用户/月)或Kinvey(将自己推销为第一个BaaS平台,我没有太多关于它的信息,但它绝对值得一看)。并使用S3进行数据存储。这样您可以使用BaaS进行客户端身份验证,如您所提到的REST API等,您可以继续使用S3。您需要做的就是为您的S3存储桶和对象创建适当的命名方案,以便您可以轻松识别哪个对象属于哪个用户,这可以使用基于前缀的命名方案轻松完成(看作S3不提供能够在桶中创建子文件夹)。现在,无论何时需要提取客户端信息,您都可以使用客户端验证的详细信息调用BaaS,并且只要您需要访问数据存储,就可以使用AWS提供的Android SDK调用S3来检索对象属于该特定用户。当你打算使用EC2来处理那些将这些文件从S3传输到EC2的文件时,你不应该花费任何额外的带宽(我可能在这里错了,因为我没有调查它,但据我记得在AWS中传输数据是免费的。

如果您还有其他问题,请与我们联系。