c# - 如何从 Azure Blob 存储 C# 中的文件 URL 获取容器名称
问题描述
我们可以使用以下代码获取容器名称
new CloudBlobContainer(url).Name
但这种方法只有在 URL 是容器基础 URL 时才有效。
如果我们尝试传递文件的 URL 并尝试获取容器名称,则代码不会按预期返回数据。在这种情况下,我们必须使用 CloudBlockBlob 对象
new CloudBlockBlob(new Uri(Url)).Container.Name
是否有任何方法可以获取适用于以下两个 URL http://127.0.0.1:10000/devstoreaccount1/10d59357-b4d1-41e8-ba2a-d92964e1ac53 http://127.0.0.1 的容器名称: 10000/devstoreaccount1/10d59357-b4d1-41e8-ba2a-d92964e1ac53/temp/1.txt
解决方案
旧版 SDK (9.3.3)
如果您使用的是旧版 SDK (9.3.3),您可以使用BlobClient
并且 blob 容器的名称将在BlobContainerName
属性中可用。
BlobClient client = new BlobClient(new Uri(url));
较新的 SDK (12.2.0)
对于较新的 SDK (12.2.0),您可以使用BlobUriBuilder
并且 blob 容器的名称将在BlobContainerName
属性中可用。
BlobUriBuilder blobUriBuilder = new BlobUriBuilder(new Uri(url));
推荐阅读
- r - R ggplot 基于条件的垂直线,但在 facet_grid 命令之后?
- powershell - powershell 计划作业无法运行
- reactjs - 如何在本机反应中访问其他文件夹中的资产?
- python - 如何在不关闭python窗口的情况下从一点画线并更新它
- python - 使用 python 在 JSON 有效负载中传递字符串
- javascript - Mongodb 聚合查询 $addFields
- dataframe - 在 PySpark 中重新排列列
- pdf - 使用相同的 Markdown 渲染将 Jupyter Notebook 导出为 PDF
- javascript - 我想找到这个函数来自哪里
- perl - 需要修改perl Deep::Hash::Utils