我正在尝试将数据上传到本地 Blob 容器中的 Blob。我收到带有消息的 System.IO.Exception
The filename, directory name, or volume label syntax is incorrect. : 'C:\repos\{repository-name}\{solution-name}\{project-name}\bin\Debug\net6.0
后跟我尝试上传的数据。
这是我的代码:
public async Task UploadData(Data data, string currentSequenceNumber)
{
// The blob container exists
bool exists = await BlobContainerClient.ExistsAsync();
// the blobname is 20230317142352_923.json
string blobName = $"{dateTimeProvider.NowUtc:yyyyMMddHHmmss}_{currentSequenceNumber.PadLeft(3, '0')}.json";
BlobClient blobClient = BlobContainerClient
.GetBlobClient(blobName);
// This serialises the data as a string with length 13770
string json = JsonConvert.SerializeObject(tennetResponse, Formatting.Indented);
// This throws the exception
await blobClient.UploadAsync(json);
}
该 blob 的绝对 URI 为“http://127.0.0.1:10000/devstoreaccount1/storage/data_20230317142352_923.json”。
我尝试将上传语句修改为
await blobClient.UploadAsync(data, new BlobUploadOptions
{
HttpHeaders = new BlobHttpHeaders()
{
ContentType = MediaTypeNames.Application.Json
}
});
没有结果。
通过 Microsoft Azure 存储资源管理器手动上传具有相同名称和内容的文件成功。
谁知道我为什么会收到此错误以及如何解决它?
最佳答案
我正在使用重载
UploadAsync(string path)
它需要路径,而不是内容。将我的声明更改为
UploadAsync(new BinaryData(json))
修复它。
(感谢用户 NotFound 指出了这一点。)
关于c# - 为什么我无法上传到 Blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75769026/