在 S3 中存储“堆栈”或对象序列的最佳方式

问题描述 投票:0回答:1

我正在寻找创建向用户显示对象“堆栈”的移动软件;这些“堆栈”可以由视频或文本组成,用户可以通过向上或向下单击进行导航(类似于 tiktok,但也允许文本支持)。每个“堆栈”都会对应一些唯一的ID,用户可以选择“堆栈”进行查看。 我想存储和检索构成 AWS S3 中堆栈的对象/文本文件。存储视频和文本以便最简单、最有效的检索的最佳方式是什么? 在这种情况下,最佳可能意味着最有组织性或最高效的资源,欢迎提供有关两者的建议,并且会非常有帮助。 集成其他 AWS 技术的解决方案也受到欢迎(即将 ID 存储在 DDB 中并基于该 ID 进行检索等)

我尝试简单地将所有文件存储在 S3 中,并使用与每个 ID 对应的文件夹,它可以工作,但在各个文件夹中导航很困难。我也试试d

amazon-web-services amazon-s3 optimization azure-blob-storage storage
1个回答
0
投票

应用程序的核心元素是一个保留每个“堆栈”详细信息的数据库。

对于每个堆栈,您将存储如下信息:

  • 堆栈ID
  • 所有者 ID(用户)
  • 权限(例如公共/私人,谁可以查看/编辑)

对于堆栈中的每个,数据库将存储:

  • 商品编号
  • 堆栈 ID(链接到上面)
  • 项目类型(文本、视频、图像)
  • 内容:
    • 对于 text 项目,存储 text/html
    • 对于图像和视频,将指向 S3 中的内容的 URL 存储

您可能还有一个用于存储使用指标的表,以便您可以确定哪些堆栈和项目受欢迎:

  • 堆栈ID
  • 商品编号
  • 时间戳
  • 用户ID

需要注意的关键是,数据库是您的应用程序中最重要的元素。事实上,图像和视频存储在 S3 中只是一个非常小的问题。

您的主要关注点应该是如何存储数据(如上所示)以及如何检索数据。例如,Web 应用程序应该能够调用 API 并请求堆栈。响应将是堆栈及其项目的 JSON 版本。该 API 也可以由移动应用程序使用。

当应用程序显示视频或图像时,它将使用存储在项目中的 URL 来引用 Amazon S3。这样,最终用户的应用程序将直接访问 S3,而不必通过应用程序检索数据。您可以使用 Amazon S3 预签名 URL 提供对 Amazon S3 中私有对象的限时访问。

虽然您可能认为移动应用程序只需要手机上调用 S3 的应用程序,但您可能会发现它还需要后端来处理身份验证、用户管理、“堆栈”和“堆栈”管理项目'。例如,如果有人对您的移动应用程序进行逆向工程并获得您的 S3 凭据,他们可以直接访问 S3 并存储/检索/删除对象。最好有一个经过身份验证的 API 到后端来管理存储和“堆栈”内容。

底线:存储很简单。相反,请专注于应用程序的架构并关注前端和后端之间的 API。

© www.soinside.com 2019 - 2024. All rights reserved.