我正在使用C# Azure Storage客户端获取图像,然后复制到Azure Storage blob容器,格式如下:
https://some-image-server.com/2023/03/13.png?api_key=my-api-key
我使用StartCopyFromUriAsync
是这样的:
await blobClient.StartCopyFromUriAsync(new Uri(imageUrl));
我的代码可以很好地处理没有api_key
查询字符串的常规公共图像。但是使用上面的图像格式,客户端将0 KB复制到Azure存储中,其中Copy Status
为Failed
(响应标头状态为通用500错误)。这是不可行的,因为图像不是真正的公共图像?我必须使用流或其他替代方案解决吗?
1条答案
按热度按时间jvidinwx1#
您从
StartCopyFromUriAsync
方法获得的问题不支持复制需要身份验证的映像。该图像需要访问
api_key
查询字符串,该字符串不是公共的。要将映像复制到Azure存储,您需要使用
HTTP client
下载映像,该HTTP client
可以使用api_key
查询字符串对请求进行身份验证。下载映像后,需要使用
BlobClient
的UploadAsync
方法将其上载到Azure存储有关详细信息,请查看Github Issue #32684
将一个存储复制到另一个存储的示例。
使用方法
StartCopyFromUriAsync
将URI中包含api_key
查询字符串的公共映像复制到Azure存储在Azure中
有关详细信息,请检查此Blog.