What is the most efficient way to get the count on the number of blobs in an Azure Storage container?
Right now I can’t think of any way other than the code below:
CloudBlobContainer container = GetContainer("mycontainer");
var count = container.ListBlobs().Count();
The API doesn’t contain a container count method or property, so you’d need to do something like what you posted. However, you’ll need to deal with NextMarker if you exceed 5,000 items returned (or if you specify max # to return and the list exceeds that number). Then you’ll make add’l calls based on NextMarker and add the counts.
EDIT: Per smarx: the SDK should take care of NextMarker for you. You’ll need to deal with NextMarker if you’re working at the API level, calling List Blobs through REST.
Alternatively, if you’re controlling the blob insertions/deletions (through a wcf service, for example), you can use the blob container’s metadata area to store a cached container count that you compute with each insert or delete. You’ll just need to deal with write concurrency to the container.