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

标签 c# azure azure-functions azure-blob-storage azure-sdk

我正在尝试通过 Azure 函数从 Azure Blob 存储获取文件并在浏览器中显示它们。当我导航到该网址时,我可以设法下载这些文件,但无法在浏览器中将它们显示为静态文件/图像。

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

我尝试了一些 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);
}

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

最佳答案

请检查您要显示的文件的内容类型,如果内容类型是“application/octet-stream”,则会导致文件下载。 默认情况下,如果未提供内容类型,azure sdk 将其设置为“application/octet-stream”,这会导致文件下载,为文件 ex :- 对于图像设置正确的内容类型应为“image/jpeg”。 希望这可以解决问题。

关于c# - 通过 Azure 函数显示 Azure Blob 存储中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63167976/

相关文章:

c# - 使用Azure功能处理Azure服务总线队列消息

c# - 在没有布局的情况下在 MVC 3 中显示页面

c# - Visual studio 2012 - 代码适合窗口断线

azure - Application Insight 如何自动捕获传入的 Http 请求?

azure - 在 Azure 数据工厂中创建 SnowFlake 链接服务时出现索引超出范围错误

c# - 为什么我在 azure 应用程序服务中从表单发布时收到 404 错误,但它在 localhost 中运行良好

azure - 如果 Azure Function 损坏怎么办?

powershell - 如何使用 PowerShell 在 Azure Function 中加载文件

c# - 登录asp.net core后访问用户声明

c# - 让 ViewModel 调用 Actions 而不是执行命令和发布事件?