2017-12-07 45 views
0

Azure blobストレージ内のすべてのコンテナのサイズを取得するために、Pythonでblock_blob_serviceライブラリを使用しようとしています。 次のように動作しますが、時間がかかりすぎます(50 TB BLOBで約10分)。Pythonを使用してAzure Blobストレージのコンテナサイズを取得する

速い方法がありますか?

block_blob_service = BlockBlobService(account_name=azureAccount, account_key=azurekey) 
containers = block_blob_service.list_containers() 
for c in containers: 
     contName = c.name 
     generator = block_blob_service.list_blobs(contName) 
     contSize = 0 
     contNum = 0 
     for blob in generator: 
      contSize += blob.properties.content_length 
      contNum += 1 
     print(contName + " : " + str(contSize/1000000) + " MB" + " in " + str(contNum) + " blobs") 

答えて

0

SDKに加えて、あなたはPowerShell scriptを使用することができますかCLI scriptは、コンテナのサイズを取得します。

また、ポータルのコンテナサイズを直接表示することもできます。

enter image description here

私はそう長く実行の主な問題は、ストレージブロブの容量に比べて、ストレージ塊がループの数を増やすことが断片化しすぎているということだと思います。

したがって、アプリケーションの負担を軽減するために計算をAzure Functionにすることをお勧めします。

お手伝いします。

+0

ありがとう、私はこれを使用してみます - しかし、私が探しているのは、アカウントのすべてのコンテナのサイズを取得する方法です(あまりにも多くのストレージスペースを取っているものを検出するなど)。 – teddiest

+0

@teddiest Ok。 Azure関数は、コンテナをループしてX MBより大きいブロブを検出するのに最適なオプションだと思います。 –

+0

@teddiestどんな進歩ですか? –

関連する問題