AWS S3上传或EC2上传以处理权限



我正在尝试找出什么是我特定问题的最佳存储服务。

应用程序

我正在使用Xamarin(.NET)开发一个移动应用程序。每个用户必须注册并登录以使用我的服务。每个用户都可以分为几个组,在这里他允许将文件存储在(每个文件约200kb)中。我的后端是托管Cassandra作为我的数据库的EC2实例。

问题

我考虑使用AWS S3存储文件。

问题#1:我是直接上传到S3还是应该上传到EC2,处理权限,然后将其存储在S3中。当使用直接上传到S3时,我的EC2实例上使用的频带较少。要直接上传,我必须提供一台令牌自动售货机,该机器有两种模式,用于提供我需要与S3:匿名和身份交互的凭据。当我阅读匿名方法时,主要是仅阅读场景的用户。但是对于身份方法,用户必须在浏览器窗口中注册,这绝对是我想要的用户。

该应用程序通过提出A启动与TVM的通信 移动设备上的浏览器使用户能够注册用户 使用TVM的名称和密码。TVM从 密码。TVM存储了未来的用户名和秘密密钥 参考。

甚至有可能处理我需要的权限(每个用户只能将文件上传并下载到他所属的组中),只有将AWS权限分配给TVM凭据?

问题#2:我是否应该考虑将每个文件直接存储在Cassandra中,因为每个文件都只有200kb?这里的问题是,每秒可以访问几次相同的文件。

我将使用S3。这样,您就不必担心文件上的带宽和权限。您确实与Amazon S3和IAM服务(他们的授权服务)进行了互动。您可以通过API和您选择的语言(Python,Ruby,Java等)来执行此操作

如果您担心与亚马逊绑定,则可以在自己的数据中心中设置诸如OpenStack Storage(与S3 API兼容)之类的东西,然后将数据移至其中。文件仍将通过您的初始应用程序来处理,因为您的代码将是"兼容"

最新更新