AWS S3 对象访问和编辑

AWS S3 Object Access and Editing

假设我想将哈希集对象存储到 AWS S3 上的存储桶中。我是否可以轻松地经常更新该对象(向哈希集添加新字符串),或者我是否必须先将哈希集从存储桶中取出才能对其进行更改?

S3 是一个键 -> (Object+Metadata) 存储。最近,(2020 年 12 月),S3 在更新、删除、列表和获取方面获得了强一致性。只有桶有最终一致性约束。这意味着您应该能够轻松地在 S3 上存储序列化对象,并使用基本的 CRUD 操作来读取、更新、删除和列出存储的对象。

所以,是的,理论上您将能够在 S3 上存储哈希集。您可以将集合的各个值哈希映射到 s3 键后缀并将值直接存储在 S3 中。您不必将整个哈希集加载到内存中,因为您可以将大部分操作直接映射到 S3。

  1. HashSet::Put -> S3::PutObject。 O(1)
  2. HashSet::isPresent -> S3::GetObjectMetaData。 O(1)
  3. HashSet::删除 -> S3::DeleteObject。 O(1)
  4. HashSet::ListAllObjects -> S3::ListObjects。 O(n)

您也许还可以实现并集、交集运算。不过,我不确定与通常的实现相比它的效率如何。