2017-02-22 4 views
1

가능한 경우 Java SDK를 사용하거나 그렇지 않은 경우 Azure REST API를 사용하여 Azure에 각 blob의 모든 스냅 샷을 나열해야합니다. 두 가지 옵션 모두에 대해 모든 스토리지 계정을 나열하는 방법을 알고 있지만 단일 저장소 계정과 연결된 스냅 샷 목록을 검색하는 방법을 찾지 못했습니다.Azure Java SDK 또는 REST API를 사용하여 스토리지 계정의 모든 스냅 샷 나열

답변

1

있어서 isSnapshot() 의해 필터링 snapshot blob 포함 된 모든 얼룩을 나열하는 컨테이너 BlobListingDetails.SNAPSHOTSlistBlobs(String prefix, boolean useFlatBlobListing, EnumSet<BlobListingDetails> listingDetails, BlobRequestOptions options, OperationContext opContext)와 방법을 사용하여, Java 용 애저 스토리지 SDK의 주문에 따라 javadocs.

아래 예제 코드는 다음과 같습니다.

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. url 매개 변수 include={snapshots}Blob and Snapshot ListreferenceList Blobs을 사용하면 스냅 샷 blob을 포함하는 컨테이너의 모든 blob을 나열한 다음 모든 스냅 샷 blob을 필터링합니다.