首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure批量容器安全设置更改为公共(或私有)

Azure批量容器安全设置更改为公共(或私有)
EN

Stack Overflow用户
提问于 2015-03-11 00:54:47
回答 1查看 83关注 0票数 0

我正在寻找一种方法来大规模更改我的azure存储中多个容器的安全设置。我正在研究几个程序(celebrata / Azure Explorer等)。但到目前为止,我还不能选择容器列表,并将所有容器的设置都更改为public (反之亦然)。有没有工具可以做到这一点?

或者我应该只使用cloudcopy,并让它使用-P参数再次运行所有容器,这真的有效吗?因为cloudcopy不会替换文件,并且可能只在添加新容器时起作用。

任何人有任何好的提示或有过这个之前,我有成千上万的容器,不能逐一介绍它们:-(谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2015-03-11 01:05:01

AFAIK,现在还没有工具可以做到这一点。你必须自己去做。这个过程相当简单:在您的存储帐户中列出容器,然后遍历容器列表并分别更改每个容器上的ACL。请看下面的代码。

代码语言:javascript
复制
    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...");
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28969606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档