Performance 性能问题:生成许多blob共享访问签名非常慢

Performance 性能问题:生成许多blob共享访问签名非常慢,performance,azure-storage-blobs,Performance,Azure Storage Blobs,我们有一个在azure上运行的站点。我们使用azure存储服务来存储静态内容图像、视频等 我们有一个页面,其中显示一个包含项目列表的表,每个项目都显示一个缩略图。缩略图存储在存储服务中,我们使用如下代码为每个缩略图分配共享访问签名: ... CloudStorageAccount storageAccount; if (!CloudStorageAccount.TryParse(connectionString, out storageAccount)) { throw new Exce

我们有一个在azure上运行的站点。我们使用azure存储服务来存储静态内容图像、视频等

我们有一个页面,其中显示一个包含项目列表的表,每个项目都显示一个缩略图。缩略图存储在存储服务中,我们使用如下代码为每个缩略图分配共享访问签名:

...
CloudStorageAccount storageAccount;
if (!CloudStorageAccount.TryParse(connectionString, out storageAccount))
{
    throw new Exception("...");
}
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var blob = container.GetBlockBlobReference(blobName);

var policy = new SharedAccessBlobPolicy
{
    Permissions = SharedAccessBlobPermissions.Read,
    SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5),
    SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(10)
};

var signature = blob.GetSharedAccessSignature(policy);

return blob.Uri.AbsoluteUri + signature;
...
这是在循环中完成的,为列表中的每个映像分配不同的SA。然而,随着列表的增加,性能会大幅下降。对于10-20张以上的图像,加载页面需要很长时间。没有SAS生成的同一页会立即加载

有没有办法加快这一进程


thanx,

在上面的代码中,我反复获得对容器的引用。这将导致严重的性能惩罚。为了解决这个问题,我将容器存储在一个私有缓存中,并且只获取一次。

在上面的代码中,我反复获取对容器的引用。这将导致严重的性能惩罚。要解决此问题,我将容器存储在专用缓存中,只获取一次。

网站和存储都位于同一地理位置网站和存储都位于同一地理位置