我正在尝试找到一种更优雅的方法来检查我创建的 blob 存储中是否有任何内容。
我有一个从 blob 存储读取的服务。我基本上需要确保当我的服务重新启动时,它会在正常运行之前检查 blob 中是否有任何内容需要读取和处理。
我似乎找不到检查 blockblob 是否为空的方法。我想出了一种方法来做到这一点,但我想知道是否有更优雅的方法:
这是我的解决方案,只需检查您是否能够下载任何内容。当然可以..
public bool IsBlobEmpty()
{
string text;
using (var memoryStream = new MemoryStream())
{
blockBlob.DownloadToStream(memoryStream);
text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
if (text.Length > 0)
{
return false;
}
}
return true;
}
最佳答案
您可以使用 Azure 存储 Blob API 获取 Blob 的元数据信息并检查其大小 - https://msdn.microsoft.com/en-us/library/azure/dd179394.aspx
来自服务器的响应 header 包含 Content-Length 属性
x-ms-meta-Name: myblob.txt
x-ms-meta-DateUploaded: Sun, 23 Oct 2013 18:45:18 GMT
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-lease-state: available
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: Sun, 23 Oct 2013 19:49:38 GMT
ETag: "0x8CAE97120C1FF22"
Accept-Ranges: bytes
x-ms-version: 2013-08-15
Last-Modified: Wed, 23 Oct 2013 19:49
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.
关于azure - 如何检查 azure block blob 中是否有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920275/