将文件上传到 Azure Blob 存储导致大小为 0
Posted
技术标签:
【中文标题】将文件上传到 Azure Blob 存储导致大小为 0【英文标题】:Uploading File to Azure Blob Storage results in size 0 【发布时间】:2021-07-31 10:26:32 【问题描述】:能够成功创建容器并上传已创建容器中的任何文件。下载文件(任何上传的文件)后出现问题,它们始终为零。这是我在 NET.Core 应用程序中使用 C# 的代码。
// Get a reference to a blob
BlobContainerClient container = new BlobContainerClient(connectionString: connectionString, blobContainerName: "test-container");
await container.CreateIfNotExistsAsync();
try
// Get a reference to a blob
BlobClient blob = container.GetBlobClient(uploadFiles.First().FileName);
string filePath = Path.GetFullPath(uploadFiles.First().FileName);
// Upload file data
await blob.UploadAsync(filePath, true);
catch (Exception e)
_ = e;
enter image description here
附上Auzure门户存储账户内的图片,大小为零?!
我正在关注 Microsoft 的文档,他们在上传文件时也没有明确设置任何大小。
【问题讨论】:
是否引发异常? 我检查过没有异常。文件上传时没有例外,除非它们出现在 Blob 存储中,我看到使用界面为 0 大小。当我尝试使用 Azure 界面下载时,它们会下载,但是当我打开我的电脑时,它们无法打开,因为它们的大小为零。 上传的本地文件是否完好,看来我这边没有问题。 您可以正常上传文件吗?提供的代码?你做了哪些修改? 完全使用您提供的代码。目前有两种猜测,一种是你上传的本地文件损坏,另一种是异步方法没有执行完。 【参考方案1】:以下代码可以工作:
using FileStream uploadFileStream = File.OpenRead(filePath);
await blob.UploadAsync(uploadFileStream, true);
uploadFileStream.Close();
【讨论】:
以上是关于将文件上传到 Azure Blob 存储导致大小为 0的主要内容,如果未能解决你的问题,请参考以下文章
将文件上传到 Azure Blob 存储时没有触发事件网格事件——为啥?
使用java中的azure函数将文件从浏览器上传到azure blob存储
如何将大文件上传到 Azure Blob 存储 (.NET Core)