首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用react和“@azure/storage- blob”将content-type设置为上载blob

无法使用react和“@azure/storage- blob”将content-type设置为上载blob
EN

Stack Overflow用户
提问于 2020-06-04 00:33:19
回答 1查看 219关注 0票数 1

我已经从canvas生成了图像,并将其上传到azure存储中。问题是内容类型总是"application/octet-stream“,我需要它是"image/png”才能使用文件的url。这就是我尝试过的,但没有成功..提前感谢

代码语言:javascript
运行
复制
  private blobUploader(){

const account = "acuontname";
const sas = "SAS_STRING";


const url = `https://${account}.blob.core.windows.net${sas}`;

const blobServiceClient = new BlobServiceClient( url);

const containerName = "containerName";
const dataURI = this.canvasCompRef.current.getOutputBase64();
async function main() {
  const containerClient = blobServiceClient.getContainerClient(containerName);
  const content = dataURI.split('base64,')[1];
  const blobName = "newblob" + new Date().getTime() + ".png";

  let blockBlobClient = containerClient.getBlockBlobClient(blobName);
  blockBlobClient.setHTTPHeaders({blobContentType:'image/png'});
  const buffer = new Buffer(content, 'base64');
  const uploadBlobResponse = await blockBlobClient.upload(buffer, buffer.byteLength);
  // we are running it in browser
  console.log(`Upload block blob ${blobName} successfully`, uploadBlobResponse.requestId);
}

main();

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-04 15:36:34

像下面这样修改你的代码,它对我很有效。

代码语言:javascript
运行
复制
let blockBlobClient = containerClient.getBlockBlobClient(blobName);
const blobOptions = { blobHTTPHeaders: { blobContentType: 'image/png' } };
const buffer = new Buffer(content, 'base64');
const uploadBlobResponse = await blockBlobClient.upload(buffer, buffer.byteLength, blobOptions); 
console.log(`Upload block blob ${blobName} successfully`, uploadBlobResponse.requestId);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62177952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档