gpt4 book ai didi

.net - GetBlobReferenceFromServer 不适用于相对 URI。错误: "Only absolute addresses are permitted"

转载 作者:行者123 更新时间:2023-12-04 00:25:16 27 4
gpt4 key购买 nike

我正在将 Azure 存储从 1.7 SDK 升级到 2.3 SDK,并且已将我的 GetBlobReference(string) 调用更新为 GetBlockReferenceFromServer(Uri)

过去我一直使用相对 URI,但是当我将它们传递给 GetBlockReferenceFromServer 时,我收到一条错误,指出我无法使用绝对 URI(请参阅下面的堆栈)

示例代码:

Dim myAccount As CloudStorageAccount = CloudStorageAccount.Parse(connectionString)
Dim myClient As CloudBlobClient = myAccount.CreateCloudBlobClient()
Dim myRelativeUri As New Uri("mycontainer/myblob.txt", UriKind.Relative)
Dim myBlobref As ICloudBlob = myClient.GetBlobReferenceFromServer(myRelativeUri) <- Errors on this line

错误堆栈:

System.ArgumentException: Address 'mycontainer/myblob.txt' is a relative address. Only absolute addresses are permitted.Parameter name: uri   
at Microsoft.WindowsAzure.Storage.StorageUri.AssertAbsoluteUri(Uri uri)
at Microsoft.WindowsAzure.Storage.StorageUri.set_PrimaryUri(Uri value)
at Microsoft.WindowsAzure.Storage.StorageUri..ctor(Uri primaryUri, Uri secondaryUri)
at Microsoft.WindowsAzure.Storage.StorageUri..ctor(Uri primaryUri)
at Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient.GetBlobReferenceFromServer(Uri blobUri, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext) at MySoftware.MyReference...

我不明白当 CloudBlobClient 有一个 BaseUri 可以使用时,为什么 Uri 必须是绝对的。在尝试获取引用之前,是否必须手动添加 BaseUri

technical reference 中没有任何内容关于这个。

有人有相关 URI 来使用 GetBlobReferenceFromServer 吗?我从根本上做错了什么吗?

最佳答案

感谢您的反馈。 GetBlobReferenceFromServer 需要绝对 URI,因为它是针对特定场景而设计的,其中用户只有 Blob 的 URI,并且需要获取其 Blob 类型才能开始使用它。

如果您知道 Blob 的类型,我强烈建议您使用 GetContainerReference,然后使用 GetBlockBlobReference 或 GetPageBlobReference,因为这些方法不必调用 Azure 存储服务来获取 Blob 类型。因此,他们将降低成本并提高性能。它们还直接使用 blob 名称,而不是 URI。

关于.net - GetBlobReferenceFromServer 不适用于相对 URI。错误: "Only absolute addresses are permitted",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com