如何仅为一个用户保护blob?
我可以想到三个选项:
1)短期到期的共享访问策略。 - 可以从任何地方访问blob的链接,以获取该到期持续时间,以及每个后续页面请求的持续时间。
2)在用户请求和blob存储之间设置代理并在此处应用身份验证。 - 虽然实际上在短时间内仍然存在可公开访问的blob。
3)我们不会将blob存储用于需要保护的东西。
我错过了一个更好的选择吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
我想你可能想做如下的事情。
string storageConnectionString ="UseDevelopmentStorage=true"; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference("mycontainer"); container.CreateIfNotExists(); BlobContainerPermissions blobPermissions = new BlobContainerPermissions(); blobPermissions.SharedAccessPolicies.Add("mypolicy", new SharedAccessBlobPolicy() { SharedAccessStartTime = DateTime.UtcNow.AddHours(1), SharedAccessExpiryTime = DateTime.UtcNow.AddHours(11), Permissions = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Read }); blobPermissions.PublicAccess = BlobContainerPublicAccessType.Off; container.SetPermissions(blobPermissions); string sasToken = container.GetSharedAccessSignature(new SharedAccessBlobPolicy(), "mypolicy");
我建议你看一下这篇文章 http://msdn.microsoft.com/en-us/library/windowsazure/jj721951.aspx