S3 关键组织最佳实践 - UUID、PK 或名称?

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

我已经为我存储的一些文件创建了一个 S3 存储桶。我们使用 Rails ActiveStorage 来支持它。

我们的应用程序有帐户和用户。该帐户每月生成两个文档,我们要保存到该帐户。用户也可以生成保存到帐户的报告。

帐户架构具有以下列:

id    # the primary key.
uuid  # the global ID that links all accounts across all apps.
name  # the name we show to users and assign to the account.

我们目前将所有附加文件存储在存储桶的根目录中,但我们希望使结构更加合理且不那么混乱。

理想情况下,这在存储桶中是可读的,因此我们一直在考虑使用

name
- 但不能保证这会改变。幸运的是,如果名称确实发生变化,ActiveStorage 将继续跟踪旧密钥。

是否有一些关于如何最好地构建它的最佳实践?

amazon-s3 rails-activestorage
1个回答
0
投票

是的,确实有一些设计模式的最佳实践。当然,您不能将所有对象保存在存储桶的根中(如果您可以拥有大量对象)。为什么?因为您可以实现每个分区 Amazon S3 前缀每秒 3,500 个 PUT/COPY/POST/DELETE 或 5,500 个 GET/HEAD 请求。因此,如果您的所有对象都位于存储桶的根中,它们将共享相同的前缀,因此您只能实现我之前描述的目标。

至于如何构造bucket,目前还没有最佳实践。您可以通过多种方式做到这一点,而且它们都可能是正确的。只做您认为最适合您的应用程序的方法。

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