mar*_*ial 23 asp.net azure-storage-blobs
我使用Azure blob来存储图像.用户上传这些图像.我想看看每个用户在他们的图像中占用了多少空间.我怎么能在ASP.NET代码中执行此操作?我是否可以通过了解其URI来获取图像文件大小?或者我需要使用一些blob相关的功能?
Ste*_*wen 51
您需要先获取blob的属性.例如,
var blob = _container.GetBlockBlobReference(blobName);
if (blob.Exists())
{
blob.FetchAttributes();
return blob.Properties.Length;
}
throw new Exception("Blob doesn't exist");
Run Code Online (Sandbox Code Playgroud)
由于 Microsoft.Azure.Storage.Blob 已弃用并应替换为 Azure.Storage.Blobs,因此有一种新方法可以实现此目的,您仍然需要获取 blob 的属性,然后该属性现在命名为ContentLength:
BlobClient blob = myBlobContainerClient.GetBlobClient(blobName);
if (blob != null){
var properties = (await blob.GetPropertiesAsync()).Value;
Console.WriteLine($" {blob.Name}\t{properties.ContentLength}");
}
Run Code Online (Sandbox Code Playgroud)
小智 6
在这里回答 scala/java,以防有人被卡住。为了获取 blob 的大小,您可以使用以下代码:
val blob: CloudBlockBlob = container.getBlockBlobReference(blobPath)
blob.downloadAttributes()
blob.getProperties.getLength
Run Code Online (Sandbox Code Playgroud)
确保您确实调用 downloadAttributes,否则属性将为空。
您可以参考此文档了解更多详细信息 https://learn.microsoft.com/en-us/java/api/com.microsoft.azure.storage.blob.cloudblockblob?view=azure-java-legacy
| 归档时间: |
|
| 查看次数: |
11424 次 |
| 最近记录: |