C# 如何保护azure Blob
我正在使用windows azure blob存储服务。我想保护我的blob不受公共访问(我的用户除外)。为此,我使用了共享访问签名(SAS),它工作得很好。但我的问题是,我有一个在目录结构中包含blob的容器,如:C# 如何保护azure Blob,c#,azure,azure-storage,azure-storage-blobs,C#,Azure,Azure Storage,Azure Storage Blobs,我正在使用windows azure blob存储服务。我想保护我的blob不受公共访问(我的用户除外)。为此,我使用了共享访问签名(SAS),它工作得很好。但我的问题是,我有一个在目录结构中包含blob的容器,如: https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob1 https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob2 h
https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob1
https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob2
https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob3
https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob4
https://xxxxxxx.blob.core.windows.net/myContainer/directory1/blob5
https://xxxxxxx.blob.core.windows.net/myContainer/directory2/blob1
https://xxxxxxx.blob.core.windows.net/myContainer/directory2/blob2
https://xxxxxxx.blob.core.windows.net/myContainer/directory2/blob3
https://xxxxxxx.blob.core.windows.net/myContainer/directory2/blob4
https://xxxxxxx.blob.core.windows.net/myContainer/directory2/blob5
and so on...
现在我的要求是,我想让公众访问directory2下myContainer中的所有Blob,但不想让公众访问directory1下的Blob,我想让directory1下的所有Blob保持私有。如何实现这一点?您只能在容器级别设置权限,因此剩下两个选项 首选选项)创建一个额外的公共容器并移动blob。
更糟糕的选项)为所有文件创建一个看似无止境的有效sas链接。Azure blob存储中没有目录。您现在拥有的那些“目录”只是名称中嵌入了
/
的blob。由于权限仅在容器级别,因此您必须创建单独的容器。您可以创建两个容器
一个在容器级别上带有SAS的私有容器和一个公共访问容器
https://xxxxxxx.blob.core.windows.net/private/blob1
https://xxxxxxx.blob.core.windows.net/private/blob2
https://xxxxxxx.blob.core.windows.net/private/blob3
https://xxxxxxx.blob.core.windows.net/private/blob4
https://xxxxxxx.blob.core.windows.net/private/blob5
https://xxxxxxx.blob.core.windows.net/public/blob1
https://xxxxxxx.blob.core.windows.net/public/blob2
https://xxxxxxx.blob.core.windows.net/public/blob3
https://xxxxxxx.blob.core.windows.net/public/blob4
https://xxxxxxx.blob.core.windows.net/public/blob5