Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 不确定使用SharedAccess令牌列出Blob的正确方法_Azure_Azure Storage_Azure Storage Blobs - Fatal编程技术网

Azure 不确定使用SharedAccess令牌列出Blob的正确方法

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

我将WindowsAzure.Storage升级到4.0.3 我想将文件夹中的blob列表输出到网页,单击链接可下载blob。由于blob位于安全容器中,每个URI都需要一个共享访问签名

我曾经有:

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;