Đây là một giải pháp khác nếu bạn không thích các giải pháp khác:
Tôi đang sử dụng phiên bản 12.4.1 của Gói NuGet Azure.Storage.Blobs.
Tôi nhận được một đối tượng Azure.Pagizable là danh sách tất cả các đốm màu trong một thùng chứa. Sau đó tôi kiểm tra xem tên của BlobItem có bằng với thuộc tính Name của mỗi blob bên trong container sử dụng LINQ không . (Nếu tất cả mọi thứ là hợp lệ, tất nhiên)
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Linq;
using System.Text.RegularExpressions;
public class AzureBlobStorage
{
private BlobServiceClient _blobServiceClient;
public AzureBlobStorage(string connectionString)
{
this.ConnectionString = connectionString;
_blobServiceClient = new BlobServiceClient(this.ConnectionString);
}
public bool IsContainerNameValid(string name)
{
return Regex.IsMatch(name, "^[a-z0-9](?!.*--)[a-z0-9-]{1,61}[a-z0-9]$", RegexOptions.Singleline | RegexOptions.CultureInvariant);
}
public bool ContainerExists(string name)
{
return (IsContainerNameValid(name) ? _blobServiceClient.GetBlobContainerClient(name).Exists() : false);
}
public Azure.Pageable<BlobItem> GetBlobs(string containerName, string prefix = null)
{
try
{
return (ContainerExists(containerName) ?
_blobServiceClient.GetBlobContainerClient(containerName).GetBlobs(BlobTraits.All, BlobStates.All, prefix, default(System.Threading.CancellationToken))
: null);
}
catch
{
throw;
}
}
public bool BlobExists(string containerName, string blobName)
{
try
{
return (from b in GetBlobs(containerName)
where b.Name == blobName
select b).FirstOrDefault() != null;
}
catch
{
throw;
}
}
}
Hy vọng điều này sẽ giúp ai đó trong tương lai.