c# - 使用 .NET SDK 从 Azure 文件共享下载空文件时出现 InvalidRange 错误
问题描述
我正在尝试使用Azure.Storage.Files.Shares
. 下载包含超过 0 个字节的文件可以正常工作。但是,在我的集成测试中,我正在创建/下载空文件。对于我的测试来说,只使用填充文件并不是什么大问题,但在我们的应用程序中意外上传并选择下载一个空文件并不是不合理的。所以问题来了:
我收到一个 InvalidRange 错误:
Status: 416 (The range specified is invalid for the current size of the resource.)
ErrorCode: InvalidRange
Content:
<?xml version="1.0" encoding="utf-8"?><Error><Code>InvalidRange</Code><Message>The range specified is invalid for the current size of the resource.
RequestId:9f04885b-401a-005e-80fa-77d94a000000
Time:2021-07-13T15:16:59.9547272Z</Message></Error>
Headers:
Content-Range: bytes */0
x-ms-request-id: 9f04885b-401a-005e-80fa-77d94a000000
x-ms-client-request-id: a6ee7be7-7ae9-4587-b28c-d6a15cd499e8
x-ms-version: 2020-08-04
x-ms-error-code: InvalidRange
Content-Length: 249
Content-Type: application/xml
Date: Tue, 13 Jul 2021 15:16:59 GMT
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0
我的下载代码是此示例代码中提供的代码:
ShareFileDownloadInfo download = file.Download();
using (FileStream stream = File.OpenWrite(localFilePath))
{
download.Content.CopyTo(stream);
}
同样,它适用于非空文件。 底层存储 REST API 的文档说“范围”是一个可选参数,当它留空时,默认情况下将下载所有文件内容。我知道可以这样做,因为这些文件可以通过 Azure 门户手动下载。
这是一个错误还是这个下载代码不完整?
解决方案
推荐阅读
- css - 在每个 .Rd 文件中自动调用宏或插入模板
- c++ - 直接使用 postgres JSONB
- kotlin - 如何将可为空的流转换为 LiveData
- embedding - 使用 BERT 嵌入语料库(以及保存词汇)而不使用预训练的 BERT
- javascript - 角度材料中的动画不起作用。问题不在于 NoopAnimationsModule 或 app.module.ts 中的材质或导出版本
- python - np.where 与 datetimes 产生 Unix 时间戳
- android - 我在改造(JSON)android中遇到错误
- sql-server - 如何编辑 SSRS 2012 RDL 的 XML 查询
- html - 图表不会随容器调整大小
- c# - 实体框架“源”表方法