【发布时间】:2019-12-24 11:23:40
【问题描述】:
我已将一些图像上传到 StorageV2(通用 v2)类型的 Azure 存储帐户上的 Blob 容器。
这些是通过编程方式上传的。这是我使用的代码:
public Task CopyFile(string fileName, string targetPath)
{
var blobRef = Container.GetBlockBlobReference(targetPath);
blobRef.Properties.ContentType = GetContentType(fileName);
return blobRef.UploadFromFileAsync(fileName);
}
public string GetContentType(string fileName)
{
var provider = new FileExtensionContentTypeProvider();
if (!provider.TryGetContentType(fileName, out var contentType))
{
contentType = "application/octet-stream";
}
return contentType;
}
Container 是一个初始化的CloudBlobContainer 实例。
当我使用存储资源管理器时,我可以看到上传的文件。如果我查看任何文件的属性,它会列出一个 Uri 属性。但是,如果我复制值(一个 URL)并粘贴到浏览器中,我会看到以下错误页面:
<Error>
<Code>ResourceNotFound</Code>
<Message>
The specified resource does not exist. RequestId:12485818-601e-0017-6f69-56c3df000000 Time:2019-08-19T08:35:13.2123849Z
</Message>
</Error>
但如果我在存储资源管理器中双击该文件,它会正确下载图像。据我所知,它使用的 URL 与我之前复制的 URL 相同,除了一些额外的查询字符串如下所示:?sv=2018-03-28&ss=bqtf&srt=sco&sp=rwdlacup&se=2019-08-19T16:49:38Z&sig=%2FJs7VnGKsjplalKXCcl0XosgUkPWJccg0qdvCSZlDSs%3D&_=1566204636804
我认为这一定意味着我的 blob 不是公开可用的,但我找不到任何可以让我的图像在其已知 URI 上公开可用的设置。谁能在这里指出我正确的方向?谢谢。
【问题讨论】:
-
您能告诉我您的存储容器访问级别吗?更多详情请参考docs.microsoft.com/en-us/azure/storage/blobs/…。
标签: azure azure-storage azure-blob-storage