在azure android中使用一个更多的安全性访问blob

时间:2017-03-30 09:23:21

标签: android azure azure-storage-blobs azure-blob-storage

我将数据存储到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());
            }
        }

1 个答案:

答案 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