GetSaSForBlobContainer (适用的容器中,SharedAccessBlobPermissions.List | SharedAccessBlobPermissions.Read);
public static string **GetSaSForBlobContainer**(CloudBlobContainer blobContainer, SharedAccessBlobPermissions permission)
{
var sas = blobContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy()
{
Permissions = permission,
SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5),//SAS Start time is back by 5 minutes to take clock skewness into consideration
SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15),
});
return string.Format(CultureInfo.InvariantCulture, "{0}{1}", blobContainer.Uri, sas);
}
- 当我尝试这个时,我的stroge帐户中的容器访问是私有的。我可以使用Internet Explorer在容器中列出blob吗?我尝试使用blob和容器访问类型,失败总是:
AuthenticationFailed
服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。 RequestId:2c504f81-0001-00ea-3815-be7271000000时间:2017-04-25T22:47:20.9382490Z 签名不匹配。使用的字符串是rl 2017-04-25T22:38:15Z 2017-04-25T22:58:15Z / blob / onlineeducation / $ root 2015-12-11
但是当我尝试这个时,我可以看到斑点,
foreach (IListBlobItem blob in blobs)
{
CloudBlockBlob blob1 = new CloudBlockBlob(blob.Uri);
string name = blob1.Name;
}
1-)当我创建GetSaSForBlobContainer并且我的容器访问类型是私有的时,我不明白会发生什么(对于Internet Explorer和代码)?
2-)当我在未经许可的情况下获得引用我的私有容器,然后创建blob uri + SAS。例如,我会看到我的容器会发生什么?或者我只能编写引用的blob(我的blob权限只能写)..
3 - 会发生什么,容器uri + sas - Blob uri + sas(读取权限)=>我可以只上传文件,还是可以在Internet Explorer中查看容器。
4-)这里有什么不同,
我的容器中的容器访问类型是私有我得到了continer 的引用,没有任何permssion和SAS ,然后使用r ead permssion和SAS 。
容器访问类型在我的存储中私有我通过permssion和SAS 获取容器的引用,然后使用 read permssion创建blob URI和SAS
答案 0 :(得分:3)
当我尝试这个时,我的stroge帐户中的容器访问权限是 private.Can我可以使用Internet Explorer在容器中列出blob吗?一世 尝试使用blob和容器访问类型,失败始终是
要解决此问题,请首先在您的SAS中添加List
作为权限,然后将&restype=container&comp=list
添加到您的请求网址。有关此问题的更多说明,请参阅此主题:Azure Shared Access Signature - Signature did not match。
1-)当我创建GetSaSForBlobContainer时,我不明白一件事 我的容器访问类型是私有的将发生什么(对于Internet 资源管理器和代码)?
除非你用它做什么,否则什么都不会发生:)。根据SAS中包含的权限,拥有此SAS URL的用户将能够执行某些操作。例如,如果您创建具有List
权限的SAS,则用户将只能列出该容器中的Blob。他们甚至无法下载blob(因为SAS必须包含Read
权限)。
2-)当我未经许可获得我的私人容器时,和 然后创建blob uri + SAS。例如,我会看到我会发生什么 容器?或者我只能编写引用的blob(我的blob权限 只是写)..
不,您无法看到您的容器,因为SAS仅适用于容器。再次因为您包含Read
权限,您将只能阅读blob内容。您将无法上传blob。
3 - 会发生什么,Container uri + sas - Blob uri + sas(Permission 是读)=>我可以只上传文件还是可以看到容器 在Internet Explorer中尝试时。
不,如果获得Read
权限,则无法上传文件。您甚至无法使用Read
权限查看blob列表。为此,您需要List
权限。
关于#4,在您实际使用该SAS URL之前没有区别。在第一种情况下,您将收到错误,在第二种情况下,您将能够看到blob。