我将数据存储到azure blob中。如果容器名称已知,那么我们可以访问该容器中的所有blob。但我需要进行一些身份验证来访问blob。
示例:设置一些密码以在创建时访问blob。
发送密码以获取blob的内容。
这可能吗?
代码在没有任何authnetication的情况下检索blob:
for (ListBlobItem blobItem : container.listBlobs()) {
// If the item is a blob, not a virtual directory
if (blobItem instanceof CloudBlockBlob) {
// Download the text
CloudBlockBlob retrievedBlob = (CloudBlockBlob) blobItem;
act.outputText(view, retrievedBlob.downloadText());
}
}
答案 0 :(得分:1)
Blob存储支持3个访问级别 - 公共,它允许匿名读取和列出容器中的所有blob,Blob读取 - 匿名请求可以读取blob但不列出容器内容以查找其他或无公共访问。这些权限详见:
https://docs.microsoft.com/en-us/azure/storage/storage-manage-access-to-resources
根据您的需求,我认为共享访问签名(SAS)将是一个不错的选择 - 下面的文章有一个我认为应该有用的示例: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-2
SAS文档可在此处获得: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-1
最后,下面列出的文章对该主题有一个很好的总结: https://www.simple-talk.com/cloud/platform-as-a-service/azure-blob-storage-part-9-shared-access-signatures/
HTH