当前位置: 首页 > 知识库问答 >
问题:

通过 Azure 函数显示 Azure Blob 存储中的文件

姜智渊
2023-03-14

我试图通过Azure功能从Azure Blob存储中获取文件并在浏览器中显示它们。当我导航到url时,我可以设法下载文件,但我无法在浏览器中将它们显示为静态文件/图像。

我只想在浏览器中显示,而不是下载

我尝试了一些sdk命令,但没有成功。以下是我尝试过的:

public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
    ILogger log)
{
    var cloudStorageAccount =
        CloudStorageAccount.Parse(AzureStorageConnectionString);

    var cloudBlobClient =
        cloudStorageAccount.CreateCloudBlobClient();

    var cloudBlobContainer =
        cloudBlobClient.GetContainerReference(
            AzureStorageFilePath);

    await cloudBlobContainer.CreateIfNotExistsAsync();

    var blobName =
        req.Query["name"];

    var cloudBlockBlob =
        cloudBlobContainer.GetBlockBlobReference(blobName);

    var ms = new MemoryStream();

    await cloudBlockBlob.DownloadToStreamAsync(ms);

    return new FileContentResult(ms.ToArray(), cloudBlockBlob.Properties.ContentType);
}

任何想法将不胜感激。谢谢!

共有1个答案

呼延化
2023-03-14

请检查您想要显示的文件的内容类型,如果内容类型是“应用程序/八位流”,将导致文件下载。默认情况下,如果没有提供内容类型,azure sdk会将其设置为“应用程序/八位字节流”,这会导致文件下载,请为文件设置正确的内容类型,例如:-对于图像,它应该是“图像/jpeg”。希望这可以解决这个问题。

 类似资料:
  • 是否有方法通过使用azure函数备份cosmos DB并将.JSON文件保存在azure blob存储中

  • 我是一个初学者,以前从未处理过基于云的解决方案,所以为这个愚蠢的问题道歉。 我有一个包含PDF文件的Azure Blob存储,我想使用PDFBox从其中提取数据。因为PDFbox不能直接加载blobs,所以我目前先在本地下载这些文件。然而,最终我的项目将需要完全基于云,最好是作为Azure功能。 因此,主要的障碍是弄清楚我的Azure函数应该如何访问文件。当在我的Azure函数中使用控制台时,我注

  • 我已经上传了一些图像到Firebase的存储,然后我需要在一个网站上显示所有这些图像。我已经阅读了firebase的文档,但仍然无法找到正确的方式来显示所有的图片。所以,我的问题是,我的代码在什么地方错误地显示了一个偶数的单个图像?如何在web上同时显示所有图像(我读过一篇关于堆栈溢出的帖子,它可能需要获取所有图像的URL,所以,子问题是如何获取所有图像的URL)?顺便说一下,我的Firebase

  • 我目前有问题下载到函数tmp dir下面是我的代码。函数返回

  • 我正在使用Dropzone.js将文件上传到Azure云存储桶中。 这些文件正在上传到bucket,但当我下载它们时,它们已经损坏了。 我到处都找过了。我没有上传在块,一切似乎都在那里,但无论什么类型的文件我上传,它是破坏与我重新下载它。

  • 我想创建一个Azure函数,当上次修改时间超过30天时,从azure blob存储中删除文件。有人能帮忙或者有文档来做吗?