C# AWS S3上载或EC2上载以处理权限

C# AWS S3上载或EC2上载以处理权限,c#,amazon-web-services,amazon-s3,amazon-ec2,cassandra,C#,Amazon Web Services,Amazon S3,Amazon Ec2,Cassandra,我正在尝试找出针对我的特定问题的最佳存储服务 应用程序 我正在用Xamarin(.NET)开发一个移动应用程序。每个用户都必须注册并登录才能使用我的服务。每个用户可以分为多个组,在这些组中他有权在其中存储文件(每个文件大约200kb)。我的后端是一个托管Cassandra作为我的数据库的EC2实例 问题 我考虑使用AWSS3来存储文件 问题#1: 我应该直接上传到S3还是上传到EC2,处理权限,然后将其存储在S3中。当使用直接上传到S3时,我的EC2实例上使用的带宽要少得多。对于直接上传,我必须

我正在尝试找出针对我的特定问题的最佳存储服务

应用程序

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

问题

我考虑使用AWSS3来存储文件

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

应用程序通过启动 移动设备上的浏览器,使用户能够注册用户 TVM的名称和密码。TVM从 暗语TVM存储用户名和密钥以备将来使用 参考资料

仅通过将AWS权限分配给TVM凭据就可以处理我需要的权限(每个用户只能将文件上载和下载到他所属的组)吗

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

我会使用S3。这样,您就不必担心带宽和文件权限。您确实与AmazonS3和IAM服务(它们的授权服务)进行了交互。您可以通过API和您选择的语言(Python、Ruby、Java等)来实现这一点

如果您担心与Amazon绑定,您可以在自己的数据中心中设置类似OpenStack存储(与S3API兼容)的东西,并将数据移动到其中。这些文件仍将由您的初始应用程序处理,因为您的代码将是“S3兼容的”