【问题标题】:How do I set Set ContentType before upload to azure blob container [duplicate]如何在上传到 azure blob 容器之前设置 Set ContentType [重复]
【发布时间】:2023-03-26 13:45:01
【问题描述】:

我正在使用 asp.net-core webapi 将图像上传到 azure 存储。

我能够成功地将图像 blob 上传到 Azure 存储(使用 quickstart)。但是,内容类型属性(使用 azure)设置为 application/octet-stream。问题是由于这种内容类型,公共 url 不会在浏览器中加载。我计划最终在我的网站上使用这个 url/图像,所以我认为这可能会起作用。有没有办法将CONTENT-TYPE 指定为image/jpeg?我也尝试了以下代码,但收到错误消息:404 (The specified blob does not exist.) 在 SetHttpHeaders 调用期间(当前注释掉的 UploadBlob 方法调用确实有效,但具有八位字节流内容类型)。

                BlobClient blobClient = containerClient.GetBlobClient(guids[index]);
                using (var content = file.OpenReadStream())
                {

                    blobClient.Upload(content);
                    blobClient.SetHttpHeaders(new BlobHttpHeaders() { ContentType = "image/jpeg" });
                    //containerClient.UploadBlob(guids[index], content);
                }

【问题讨论】:

    标签: azure-storage asp.net-core-webapi


    【解决方案1】:

    没有具体的内容类型,带有文件名。[ext] 下载 ok。创建对 blobclient 的引用时设置扩展名。示例下载:

    var fileName = $"{guids[index]}.jpg";   
    var pathStorage = Path.Combine(path, fileName); 
    BlobClient blobClient = containerClient.GetBlobClient(pathStorage);
    
    BlobDownloadInfo download = await blobClient.DownloadAsync();
    
    byte[] bytesContent;
    using (var ms = new MemoryStream())
    {
        await download.Content.CopyToAsync(ms);
        bytesContent = ms.ToArray();
     }
    return bytesContent;
    

    上传示例:

    var fileName = $"{guids[index]}.jpg";   
    var pathStorage = Path.Combine(path, fileName); 
    BlobClient blobClient = containerClient.GetBlobClient(pathStorage);
    
    var stream = new MemoryStream(bytesContent);
    
    var uploadInfo = await blobClient.UploadAsync(stream);
    

    【讨论】:

    • 当我上传文件来自 FormData (Request.Form.files)。我正在使用 .jpg 扩展名(即 guids[index] = guid.jpg
    • 转换为bytes数组,bytesContent为bytes数组(byte[])
    猜你喜欢
    • 1970-01-01
    • 2020-02-08
    • 2018-07-11
    • 1970-01-01
    • 2020-05-02
    • 2020-01-14
    • 1970-01-01
    • 2014-08-28
    • 2013-11-24
    相关资源
    最近更新 更多