我正在寻找一种方法来大规模更改我的天蓝色存储中多个容器的安全设置。我正在研究几个程序(celebrata / Azure Explorer等),但到目前为止,我无法选择容器列表并将所有这些设置更改为公共(或反之亦然)。有没有可以做到这一点的工具?
或者我应该只使用cloudcopy并让它使用-P参数再次运行所有容器,这实际上有用吗?由于cloudcopy不替换文件,因此只能在添加新容器时使用。
任何有任何好的提示或以前有这个,我有成千上万的容器,不能一个接一个地检查:-(感谢您的帮助
答案 0 :(得分:1)
AFAIK,今天没有工具可以做到这一点。你必须自己做。这个过程非常简单:您在存储帐户中列出容器,然后遍历容器列表并单独更改每个容器上的ACL。请参阅下面的代码。
private static void ChangeContainerACL()
{
var cloudStorageAccount = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
var blobClient = cloudStorageAccount.CreateCloudBlobClient();
BlobContinuationToken token = null;
do
{
var listingResult = blobClient.ListContainersSegmented(token);
token = listingResult.ContinuationToken;
var containers = listingResult.Results;
foreach (var container in containers)
{
//Code below assumes that you have not defined any access policies on the blob container.
//If that is not the case, then you would need to get permissions on the container by using container.GetPermissions()
container.SetPermissions(new BlobContainerPermissions()
{
PublicAccess = BlobContainerPublicAccessType.Off
});
Console.WriteLine("ACL for " + container.Name + " changed to Off (Private).");
}
}
while (token != null);
Console.WriteLine("All done...");
}