将文件上传到 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的主要内容,如果未能解决你的问题,请参考以下文章

将 Blob 的上传大小限制到 Azure Blob 存储

将文件上传到 Azure Blob 存储时没有触发事件网格事件——为啥?

使用java中的azure函数将文件从浏览器上传到azure blob存储

如何将大文件上传到 Azure Blob 存储 (.NET Core)

直接从前端将数据上传到 Azure Blob 存储时的安全问题

从 SFTP 服务器将文件上传到 Azure 存储 Blob