gpt4 book ai didi

java - 使用 Azure Java SDK 或 REST API 列出存储帐户的所有快照

转载 作者:行者123 更新时间:2023-11-30 06:52:57 26 4
gpt4 key购买 nike

我需要列出 Azure 中每个 blob 的所有快照,如果可能的话使用 Java SDK,否则使用 Azure REST API。对于这两个选项,我知道如何列出所有存储帐户,但我还没有找到检索与单个存储帐户关联的快照列表的方法。

最佳答案

根据javadocs适用于 Java 的 Azure 存储 SDK,使用方法 listBlobs(String prefix, boolean useFlatBlobListing, EnumSet<BlobListingDetails> listingDetails, BlobRequestOptions options, OperationContext opContext) BlobListingDetails.SNAPSHOTS 用于列出包含 snapshot blob 的所有 Blob 的容器通过方法 isSnapshot() 进行过滤.

下面是我的示例代码。

String accountName = "<your-storage-account-name>";
String accountKey = "<your-storage-account-key>";
String storageConnectionString = "DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s";
String connectionString = String.format(storageConnectionString, accountName, accountKey);
CloudStorageAccount account = CloudStorageAccount.parse(connectionString);
CloudBlobClient client = account.createCloudBlobClient();
// List all containers of a storage account
Iterable<CloudBlobContainer> containers = client.listContainers();
String prefix = null;
boolean useFlatBlobListing = true;
// Specify the blob list which include snapshot blob
EnumSet<BlobListingDetails> listingDetails = EnumSet.of(BlobListingDetails.SNAPSHOTS);
BlobRequestOptions options = null;
OperationContext opContext = null;
for (CloudBlobContainer container : containers) {
Iterable<ListBlobItem> blobItems = container.listBlobs(prefix, useFlatBlobListing, listingDetails, options,
opContext);
for (ListBlobItem blobItem : blobItems) {
if (blobItem instanceof CloudBlob) {
CloudBlob blob = (CloudBlob) blobItem;
// Check a blob whether be a snapshot blob
if (blob.isSnapshot()) {
System.out.println(blobItem.getStorageUri());
}
}
}
}

如果您想使用REST API来实现这一需求,步骤如下。

  1. 使用 List Containers 让存储帐户列出所有容器。
  2. 使用 List Blobs url 参数 include={snapshots}作为小节 Blob and Snapshot List reference的表示列出容器中包含快照 blob 的所有 blob,然后过滤所有快照 blob。

关于java - 使用 Azure Java SDK 或 REST API 列出存储帐户的所有快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com