如何获取文件、表和队列的 Azure 存储中所有服务的大小?在 JAVA 中

Posted

技术标签:

【中文标题】如何获取文件、表和队列的 Azure 存储中所有服务的大小?在 JAVA 中【英文标题】:How to get the size of all services in azure storage for files, tables & queues? in JAVA 【发布时间】:2020-02-14 16:25:24 【问题描述】:

尝试获取 azure 存储 blob、文件、队列和表的大小/长度。

我可以通过以下代码获取 blob 的大小,但无法为文件、队列和表等其他代码获取。

for (CloudBlobContainer cloudBlobContainer : cloudBlobContainers) 

                               Iterable<ListBlobItem> blobItems = cloudBlobContainer.listBlobs();

                                   for (ListBlobItem blobItem : blobItems) 
                                        if (blobItem instanceof CloudBlob) 
                                            CloudBlob blob = (CloudBlob) blobItem;
                                            size += blob.getProperties().getLength();
                                            logger.info("Size : "+blob.getProperties().getLength());
                                        

                                     

如果有人可以提供 ccode sn-p 的帮助,不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

不幸的是,没有一个简单的方法。

对于文件,您可以执行与处理 blob 类似的操作 - 列出和汇总文件大小。

对于表,您需要扫描整个表并逐一估算实体大小。 https://blogs.msdn.microsoft.com/avkashchauhan/2011/11/30/how-the-size-of-an-entity-is-caclulated-in-windows-azure-table-storage/

据我了解,排队是不可行的。

【讨论】:

谢谢你,卢。我遇到了 Azure Portal > Storage Account (name) > Monitoring > Insights (preview),它显示了特定存储帐户使用的容量。但我想知道是否有任何 JAVA API 可以做到这一点? 所以你只需要账户级别的容量?我以为你需要容器​​/队列/表/共享级别的容量......

以上是关于如何获取文件、表和队列的 Azure 存储中所有服务的大小?在 JAVA 中的主要内容,如果未能解决你的问题,请参考以下文章

使用SAS保护Azure Storage的安全性

如何备份 Azure 表和 Blob

访问 Azure 存储帐户中的所有队列

如何在 C# 中获取 Azure 表存储中的所有行?

Azure Functions:如何在 Azure 存储队列的绑定表达式中使用 POCO?

Azure 存储帐户防火墙规则适用于表但会破坏 blob 存储