【发布时间】:2017-09-23 04:23:26
【问题描述】:
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.Example 会发生什么我可以看到我的容器吗?或者我可以只写引用的blob吗(我的blob权限是只写)..
3-会发生什么,容器 uri + sas - Blob uri + sas(权限已读取)=> 我只能上传文件还是在 Internet Explorer 中尝试时可以看到容器。
4-)这里有什么不同,
我的容器访问类型是 private 在我的存储中我得到了 continer 的引用没有任何权限和 SAS,然后使用 r阅读权限和 SAS 。
容器访问类型是 private 在我的存储中我得到容器的引用 with permssion and SAS,然后使用 read permssion 创建 blob URI和 SAS
【问题讨论】:
-
您能否详细说明
Explorer的含义?你是指微软的 Azure Storage Explorer 还是 Internet Explorer(浏览器)? -
是的先生,我现在编辑的 Internet Explorer :)