【发布时间】:2021-01-04 20:26:42
【问题描述】:
我的应用程序位于 Kubernetes 集群中,我正在使用 Java v12 SDK 与 Blob 存储进行交互。为了授权 Blob 存储,我使用了托管身份。
我的应用程序需要在一个容器中复制 blob。我还没有找到任何具体的recommendations or examples 应该如何使用 SDK 进行复制。
我认为在使用模拟器时以下方法有效
copyBlobClient.copyFromUrl(sourceBlobClient.getBlobUrl());
但是,当它在集群中执行时,我收到以下错误
<Error>
<Code>CannotVerifyCopySource</Code>
<Message>The specified resource does not exist. RequestId: __ Time: __ </Message>
</Error>
消息说“资源不存在”,但 blob 显然在那里。不过,我的容器有私人访问权限。
现在,当我将公共访问级别更改为“Blob(仅限 Blob 的匿名读取访问)”时,一切正常。但是,我不接受公共访问。
主要问题 - 使用 Java v12 SDK 实现复制 blob 的正确方法是什么。
在我的情况下我可能会错过什么或配置错误?
最后是错误信息本身。有一部分写着“CannotVerifyCopySource”,它可以帮助您了解某些东西可以访问,但消息部分显然具有误导性。错误不应该更明确吗?
【问题讨论】:
-
请为源 blob 创建一个 sas 令牌:github.com/Azure/azure-sdk-for-java/blob/…。
-
您还有其他顾虑吗?
-
@JimXu 感谢您的 cmets 和回答。我会尽快尝试,会提供反馈。
标签: azure azure-storage azure-blob-storage azure-java-sdk