2017-10-19 70 views
0

好吧,所以我是AWS新手。我想制作一个存储少量用户数据的应用程序。 S3似乎是存储数据的方式。有没有办法使用S3自动创建多个存储空间?比方说,我做了一个android应用程序,人们将它安装在他们的手机上。他们每个人都会自动获得S3存储空间吗?我怎么做?感谢AWS S3在多个设备上

+0

你可能想在https://aws.amazon.com/cognito/这将允许你存储少量的每用户数据的读了起来,并在他们的设备同步。 S3对您的使用情况可能有些过分。 – jarmod

回答

1

您可以创建一个S3桶将项目与文件夹(依赖于架构,可以为一个客户)。这样,您将拥有包含所有用户数据的s3服务实例。

0

Amazon S3只是一个对象存储系统。你如何使用它完全取决于你。

如果你想存储在一个每个用户基础信息,那么你就需要考虑另外安全数据如何存储

如果意图是用户可以访问某些对他们来说是私人的信息(而不是被任何人公开显示),那么您首先需要控制对数据的访问。

  • 对于公共信息,不需要身份验证,
  • 对于私人信息,有什么需要,以确定他们被允许访问,然后访问权限授予

你应该为每个用户提供永久的AWS凭证(访问密钥,密钥)。这些凭证仅适用于您的IT运营人员(您!)和您的应用程序。

这使得两种选择:

  • 你的中央服务器可以使用AWS安全令牌服务生成临时访问凭证,同时指定他们有什么访问权限(例如,一个特定的S3存储和路径访问,或其他AWS服务(如DynamoDB))。或
  • 为存储在Amazon S3中的特定对象生成预签名URL

根据您的使用情况,似乎更适合使用预先签署的网址。基本上,流程如下:

  • 您的应用程序会向中央服务器发送请求,请求访问对象。
  • 服务器(或者更确切地说,您编写的应用程序在中央服务器上运行)会验证其身份并确认应该允许其访问存储在Amazon S3中的对象。
  • 中央服务器然后生成预签名URL授予以亚马逊S3对象时间限制的访问,并发送的URL返回到客户端应用程序
  • 然后,客户端应用程序使用的URL来检索数据从Amazon S3

只有你的中央服务器上运行的应用程序需要AWS凭据。然后,它使用这些凭证来生成可供客户端应用程序使用的预签名URL。

顺便说一句,在中央服务器上的应用程序实际上并不需要在服务器上运行。您可以使用AWS API网关将请求发送到AWS LAMBDA功能,可进行逻辑和发回的响应。这将是一个无服务器的解决方案,但仍与集中的逻辑。