如何只为一个用户保护 blob?
我能想到三个选项:
1) 具有短期有效期的共享访问策略。- 在该到期期限内以及在每个后续页面请求的期限内,都可以从任何地方访问到 blob 的链接。
2)在用户请求和blob存储之间有一个代理,并在此处应用身份验证。- 尽管实际上在短时间内仍然存在可公开访问的 blob。
3) 我们不会将 blob 存储用于需要保护的内容。
我错过了更好的选择吗?
如何只为一个用户保护 blob?
我能想到三个选项:
1) 具有短期有效期的共享访问策略。- 在该到期期限内以及在每个后续页面请求的期限内,都可以从任何地方访问到 blob 的链接。
2)在用户请求和blob存储之间有一个代理,并在此处应用身份验证。- 尽管实际上在短时间内仍然存在可公开访问的 blob。
3) 我们不会将 blob 存储用于需要保护的内容。
我错过了更好的选择吗?
我认为您可能想要执行以下操作。
字符串 storageConnectionString ="UseDevelopmentStorage=true"; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer 容器 = blobClient.GetContainerReference("mycontainer"); 容器.CreateIfNotExists(); BlobContainerPermissions blobPermissions = new BlobContainerPermissions(); blobPermissions.SharedAccessPolicies.Add("mypolicy", new SharedAccessBlobPolicy() { SharedAccessStartTime = DateTime.UtcNow.AddHours(1), SharedAccessExpiryTime = DateTime.UtcNow.AddHours(11), 权限 = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Read }); blobPermissions.PublicAccess = BlobContainerPublicAccessType.Off; 容器.SetPermissions(blobPermissions); 字符串 sasToken = container.GetSharedAccessSignature(new SharedAccessBlobPolicy(), "mypolicy");
我建议你看看这篇文章 http://msdn.microsoft.com/en-us/library/windowsazure/jj721951.aspx