我已经从canvas生成了图像,并将其上传到azure存储中。问题是内容类型总是"application/octet-stream“,我需要它是"image/png”才能使用文件的url。这就是我尝试过的,但没有成功..提前感谢
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();
}
发布于 2020-06-04 15:36:34
像下面这样修改你的代码,它对我很有效。
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);
https://stackoverflow.com/questions/62177952
复制相似问题