Azure 不确定使用SharedAccess令牌列出Blob的正确方法
我将WindowsAzure.Storage升级到4.0.3 我想将文件夹中的blob列表输出到网页,单击链接可下载blob。由于blob位于安全容器中,每个URI都需要一个共享访问签名 我曾经有:Azure 不确定使用SharedAccess令牌列出Blob的正确方法,azure,azure-storage,azure-storage-blobs,Azure,Azure Storage,Azure Storage Blobs,我将WindowsAzure.Storage升级到4.0.3 我想将文件夹中的blob列表输出到网页,单击链接可下载blob。由于blob位于安全容器中,每个URI都需要一个共享访问签名 我曾经有: var dir = Container.GetDirectoryReference(folderName); List<IListBlobItem> blobs = dir.ListBlobs().ToList(); var blobsInFolder = new List<Ur
var dir = Container.GetDirectoryReference(folderName);
List<IListBlobItem> blobs = dir.ListBlobs().ToList();
var blobsInFolder = new List<Uri>();
foreach (IListBlobItem listBlobItem in blobs)
{
var blob = Container.GetBlockBlobReference(listBlobItem.Uri.ToString());
string sasBlobToken = blob.GetSharedAccessSignature(_sasConstraints);
blobsInFolder.Add(new Uri(blob.Uri + sasBlobToken));
}
return blobsInFolder;
…但我觉得这是错误的(我不应该这么做?)。有人能告诉我正确的方法吗?试着将
IListBlobItem
转换为CloudBlockBlob
foreach (IListBlobItem listBlobItem in blobs)
{
var blob = (CloudBlockBlob) listBlobItem;
string sasBlobToken = blob.GetSharedAccessSignature(_sasConstraints);
blobsInFolder.Add(new Uri(blob.Uri + sasBlobToken));
}
return blobsInFolder;
更新你的答案。当您已经将
listBlobItem
强制转换为CloudBlockBlob
,那么就不需要重新创建CloudBlockBlob
:)的实例了。让我们删除注释,没有人会知道这曾经发生过:):)就是这样的一个例子——好得多。谢谢你,亚历克斯。
foreach (IListBlobItem listBlobItem in blobs)
{
var blob = (CloudBlockBlob) listBlobItem;
string sasBlobToken = blob.GetSharedAccessSignature(_sasConstraints);
blobsInFolder.Add(new Uri(blob.Uri + sasBlobToken));
}
return blobsInFolder;