Azure blob 存储 returns 404 有一些文件

Azure blob storage returns 404 with some files

我有一个 Azure blob 存储设置,其中有几个文件。当文件很小(KB 大小)时,我可以将文件下载到 Stream 中,但是当文件稍大(MB 大小)时,我会收到 404 错误。我已经从门户网站手动下载了其中一张返回 404 正常的图像并调整了该图像的大小,然后将较小的图像上传回容器,然后我可以通过语法将其下载到流中。

这是我用来下载 blob 的代码

private static byte[] PerformDownload(string fileName, CloudBlobContainer container)
        {
            var blockBlob = container.GetBlockBlobReference(fileName);
            using (var memoryStream = new MemoryStream())
            {
                blockBlob.DownloadToStream(memoryStream);
                memoryStream.Seek(0, SeekOrigin.Begin);

                var binaryReader = new BinaryReader(memoryStream);
                var bytes = binaryReader.ReadBytes((int)memoryStream.Length);
                return bytes;
            }
        }

容器被传递到此方法中,正如我提到的,我可以毫无问题地从容器中下载一些文件,但如果您需要该代码,我也可以添加它

使用您找到的标准示例检索容器,但这里是代码

 private static CloudBlobContainer GetContainer(string containerName)
        {
            var storageAccount = CloudStorageAccount.Parse(ConnectionString);

            var container = CreateContainerIfNeeded(storageAccount, containerName);
            return container;
        }

        private static CloudBlobContainer CreateContainerIfNeeded(CloudStorageAccount storageAccount, string containerName)
        {
            var blobClient = storageAccount.CreateCloudBlobClient();

            var container = blobClient.GetContainerReference(containerName);

            container.CreateIfNotExists();

            return container;
        }

此外,区分大小写也不是问题,因为容器的名称是 2017-106,文件是 4448.jpg。

I am able to download the files into a Stream when they are small (KB sized), but when the files are a little larger (MB sized) I get a 404 error.

目前 max size of a block blob is approx. 4.75 TB, storing MB-sized data in a block blob, which should not cause Azure Blob service return 404 when you access the blob. 404 error indicates that the specified blob does not exist, as Gaurav Mantri said, Blob name is case-sensitive,请确保您提供的 filename(blob 名称)确实存在于您的容器中。

此外,如果只是找不到特定的 blob,但它确实存在于您的容器中,您可以创建支持请求来报告它。