Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure blob从私有变为公共_Azure_Blob_Private_Public - Fatal编程技术网

Azure blob从私有变为公共

Azure blob从私有变为公共,azure,blob,private,public,Azure,Blob,Private,Public,我在Azure上的容器中创建了一个私有blob 不幸的是,当我上传文件时,它变为公共文件。我尝试过在上传时将文件设置为私有,因为这可能是问题所在,但我找不到任何东西 你知道为什么会这样吗 上传时是否应区别对待私人文件 我的上传代码: CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference

我在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();
 }

代码似乎没问题,请看这里:

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

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


不过,StorageClient库v.3.0.0中有一个使用本地(测试)计算机上的容器的版本

你能分享一些代码吗?我觉得你的代码很好。事实上,代码中没有对blob容器执行任何操作。两件事:1)你所说的私人blob是什么意思?没有所谓的私人污点。ACL(私有/公共)适用于容器级别。您是否看到容器的ACL正在从私有变为公共?2) 你能分享一下创建blob容器的代码吗?我的错。我有一个私有的容器,当我上传一个文件时,它会变为公共的(至少在某个时候它会改变)。我在Azure管理中创建了容器。发现错误。这是我的错。复制/粘贴时潜入以下代码:container.SetPermissions(新BlobContainerPermissions{PublicAccess=BlobContainerPublicAccessType.Blob});