【问题标题】:Azure blob changes from private to publicAzure blob 从私有更改为公共
【发布时间】:2014-03-30 19:57:23
【问题描述】:

我在 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 容器执行操作的任何内容。两件事:1)你所说的私人blob是什么意思?没有私有 blob 这样的东西。 ACL(私有/公共)适用于容器级别。您是否看到容器的 ACL 正在从私有变为公共? 2) 可以分享一下创建blob容器的代码吗?
  • 我的错。我有一个私有容器,当我上传文件时它会变为公共容器(至少它会在某个时候发生变化)。我在 Azure 管理中创建了容器。

标签: azure blob private public


【解决方案1】:

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

How to use Blobs in Windows Azure

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

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

不过,StorageClient Library v.3.0.0 中有一个issue,它使用本地(测试)机器上的容器。

【讨论】:

  • 发现错误。这是我的错。当复制/粘贴以下代码时: container.SetPermissions( new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
猜你喜欢
  • 2020-01-12
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 2022-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多