Azure Blob 存储上 IBM COS ListObjectsV2 的模拟

Analogue of IBM COS ListObjectsV2 on Azure Blob Storage

美好的一天。我有以下代码片段用于与 Java 中的 IBM Cloud Storage 交互:

ListObjectsV2Request request = new ListObjectsV2Request()
    .withBucketName(bucket)
    .withPrefix(prefix)
    .withMaxKey(keyCount)
    .withContinuationToken(token)
    .withSdkClientExecutionTimeut(timeout);
ListObjectsV2Result result = cosConfig.getClient().listObjectsV2(request);
result.getObjectSummaries()
    .stream()
    .filter(e -> e.getKey().endsWith(extension))
    .forEach(e -> map.put(
        e.getKey().substring(e.getKey().lastIndexOf("/") + 1),
        e.getETag()
    ));
if (result.isTruncated()) {
    token = result.getNextContinuationToken();
}

但无法在 Azure Blob 上找到确切的替代方案。我是否正确理解获取容器然后在 blob 列表中找到必要的容器更容易?

非常感谢

Do I understand correctly that it's easier to get a container and then find the necessary ones in the list of blobs?

是的,没错。这是 Azure Blob 存储的确切层次结构。

Azure Blob Storage 针对存储大量非结构化数据进行了优化。非结构化数据是不遵循特定数据模型或定义的数据,例如文本或二进制数据。 Blob 存储提供三种类型的资源:

  • 存储账户
  • 存储帐户中的一个容器
  • 容器中的 blob

Java v12 SDK 允许您与 ContainersBlobs 进行交互。此 SDK 提供 classes 与这些资源交互:

  • BlobServiceClient: BlobServiceClient class 允许您操作 Azure 存储资源和 blob 容器。存储帐户为 Blob 服务提供 top-level 命名空间。
  • BlobServiceClientBuilder: BlobServiceClientBuilder class 提供了一个流畅的构建器 API 来帮助配置和实例化 BlobServiceClient对象。
  • BlobContainerClient: BlobContainerClient class 允许您操作 Azure 存储容器及其 ​​blob。
  • BlobClient: BlobClient class 允许您操作 Azure 存储 blob。
  • BlobItem: BlobItem class 表示从调用 listBlobs.
  • 返回的单个 blob

有关使用这些 classes 的代码示例,请访问 here