我正在尝试通过 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/