我正在寻找一种方法来大规模更改我的azure存储中多个容器的安全设置。我正在研究几个程序(celebrata / Azure Explorer等)。但到目前为止,我还不能选择容器列表,并将所有容器的设置都更改为public (反之亦然)。有没有工具可以做到这一点?
或者我应该只使用cloudcopy,并让它使用-P参数再次运行所有容器,这真的有效吗?因为cloudcopy不会替换文件,并且可能只在添加新容器时起作用。
任何人有任何好的提示或有过这个之前,我有成千上万的容器,不能逐一介绍它们:-(谢谢你的帮助
发布于 2015-03-11 01:05:01
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...");
}https://stackoverflow.com/questions/28969606
复制相似问题