Azure Blob 从私有更改为公共

3

我在Azure上的一个容器中创建了一个私有blob。

不幸的是,当我上传文件时,它会变成公共的。我尝试找到一种在上传时将文件设置为私有的方法,因为那可能是问题所在,但我找不到任何东西。

你们有什么想法吗?

上传私有文件时是否应该有不同的处理方式?

我的上传代码:

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference(containerName);

if (file != null)
{
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);

    blockBlob.UploadFromStream(file.InputStream);

    blockBlob.Properties.ContentEncoding = MimeTypes.GetContentType(filename);
    if (ht != null)
    {
        foreach (DictionaryEntry item in ht)
        {
            blockBlob.Metadata[item.Key.ToString()] = item.Value.ToString();
        }

        blockBlob.SetMetadata();
    }
    blockBlob.Metadata["Created"] = DateTime.UtcNow.ToString();
    blockBlob.SetProperties();
 }

你能分享一些代码吗? - Gaurav Mantri
你的代码看起来没问题。实际上,代码中没有对 blob 容器执行操作的内容。有两个问题:1)当你说“private blob”时,你是什么意思?不存在私有 blob 这样的东西。ACL(私有/公共)适用于容器级别。你是否看到容器的 ACL 从私有变为公共了?2)你能分享一下创建 blob 容器的代码吗? - Gaurav Mantri
1
我的错。我有一个容器是私有的,当我上传文件时会变成公共的(至少在某个时候会变)。我在Azure管理中创建了这个容器。 - Rene K
1个回答

0

代码看起来没问题,请查看这里:

如何在Windows Azure中使用Blobs

您的Blob将获得与容器相同的访问权限。

一些额外的信息:您似乎正在使用StorageClient Library v1.7。此版本已被弃用,建议使用v3.0(StorageClient Library v3.0.0)。

然而,在本地(测试)机器上使用容器存在一个问题,这是StorageClient Library v.3.0.0的问题。


1
发现了错误。是我的错。在复制/粘贴下面的代码时,偷偷地插入了:container.SetPermissions( new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); - Rene K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接