在 AWS 上部署作为 Instagram 副本的应用程序

-1 amazon-s3 amazon-web-services

我对我的新事业的规划阶段没有什么疑问:

我正在尝试在 AWS 上部署一个应用程序,该应用程序是 Instagram 的副本,人们可以在其中在线发布他们的照片。

哪种 AWS 服务将:

  • 推荐存储图像?S3?
  • 最终客户用来下载这些图像?
  • 用于检索评论和标签等图像数据?
  • 用于将图像转换为小尺寸?云前?
  • 用于搜索所有图像和标签?
  • 用于前端所有 API 请求?

我还想将视频存储在 S3 中,以便在重负载下快速检索,因此可以像文件夹一样组织视频以便于访问吗?key=folder1/folder2/folder3/video.mp4或者为键名创建一个 10 的随机哈希值或者可能是一个哈希值是一个好主意吗? 20 后面跟着一个逻辑名称?

Joh*_*ein 5

虽然你的问题太宽泛,无法在 StackOverflow 上找到答案,但这里尝试做出回应......

虽然某些 AWS 服务可用于构建类似 Instagram 的应用程序,但您仍然需要进行大量编码。AWS 使存储数据、管理和服务数据变得容易,应用程序仍然需要由您编写。

回答您的问题:

  • 存储图像:绝对是Amazon S3。它可以存储任意数量的文件。
  • 下载图像:只需在网页中嵌入 URL,S3就会为您的用户提供图像。您甚至可以使用预签名 URL向授权用户提供私有内容。
  • 注释和标签:虽然有限的元数据可以与存储在 Amazon S3 中的对象关联,但您的应用程序最好将此类数据存储在数据库中。该数据库可以在Amazon RDS(关系数据库服务)下启动。
  • 转换图像大小:您的应用程序将负责执行此操作。但是,您可以使用第 3 方服务自动转换图像,例如Cloudinarylib-pixelimgix
  • 搜索图像和标签:这将是您的应用程序的责任,但可以通过使用数据库来辅助,您可以考虑Amazon CloudsearchSmugMug 实际上使用它来实现此目的。
  • API 前端:使用Amazon API Gateway充当 API 请求的前端,但您的应用程序将负责满足这些请求。
  • 在重负载下检索视频:将视频存储在Amazon S3中,但使用Amazon CloudFront来提供视频。它可以缓存更靠近用户的内容,并知道如何向网络浏览器提供视频内容。文件名策略不会影响提供内容的速度,因此您可以随意命名文件。