2017-03-15 2 views
-1

다음 링크는 C#을 사용하여 저장소 크기를 계산할 수있는 방법을 자세히 설명하지만 Java에서 비슷한 메서드가 표시되지 않습니다. 다른 사람이 Java 용 샘플 코드를 게시 할 수있게 해주시면 감사하겠습니다. Azure Storage container sizeAzure 스토리지 컨테이너 크기를 Java로 계산하는 방법은 무엇입니까?

+1

코드는 거의 동일합니다. 너 해봤 어? – ouflak

답변

2

여기 내 샘플 코드입니다. 자세한 내용은 javadocs (Azure Storage SDK for Java)을 참조하십시오.

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(); 
String containerName = "mycontainer"; 
CloudBlobContainer container = client.getContainerReference(containerName); 
long size = 0L; 
Iterable<ListBlobItem> blobItems = container.listBlobs(); 
for (ListBlobItem blobItem : blobItems) { 
    if (blobItem instanceof CloudBlob) { 
     CloudBlob blob = (CloudBlob) blobItem; 
     size += blob.getProperties().getLength(); 
    } 
} 

당신이 컨테이너의 크기를 계산해야하는 경우

스냅 샷, 블롭 목록을 아래의 코드를 사용하시기 바랍니다 포함한다.
// If count blob size for a container include snapshots 
String prefix = null; 
boolean useFlatBlobListing = true; 
EnumSet<BlobListingDetails> listingDetails = EnumSet.of(BlobListingDetails.SNAPSHOTS); 
BlobRequestOptions options = null; 
OperationContext opContext = null; 
Iterable<ListBlobItem> blobItems = container.listBlobs(prefix, useFlatBlobListing, listingDetails, options, opContext); 

단지 용기에 스냅 샷 크기를 계산하는 경우

는 BLOB를 확인하기 위해 아래의 코드를 사용하는지 스냅 샷입니다하시기 바랍니다.

if (blob.isSnapshot()) { 
    size += blob.getProperties().getLength(); 
} 
+0

고마워,이 하나의 작품. –

+0

@Peter Pan 자바를 사용하여 하늘빛에 새 폴더 (컨테이너)를 만드는 방법을 알고 있습니까? – Ranjitsinh