Tom*_*mas 2 blob azure azure-storage-blobs node.js azure-web-sites
我有一个图像转换为base64我试图使用createBlockBlobFromText上传到我的azure blob存储.
self.blobServer.createBlockBlobFromText(containerName, fileName, baseStrChars, { contentSettings: { contentType: 'image/jpeg' } }, function(error, result, response) {
if (error) {
console.log(error);
}
console.log("result", result);
console.log("response", response);
});
Run Code Online (Sandbox Code Playgroud)
我的新jpeg图像出现在blob存储容器中,但是当我转到blob图像URL时,我总是得到这个.
我的容器的访问策略设置为容器,我将base64字符串粘贴到base64到图像转换器,并显示正确的图像.问题似乎是我创建blob而不是base64字符串的方式.
我很疑惑为什么整个流程似乎都有效,但是当我转到URL时,图像仍然被破坏了.有任何想法吗 ?
Gar*_*SFT 12
要在浏览器中通过Urls直接访问图像,需要二进制内容.您可以将base64编码的字符串转换为node.js后端中的二进制缓冲区,并将缓冲区字符串上载到Azure存储.
请尝试以下代码段:
var rawdata = 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
var matches = rawdata.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/);
var type = matches[1];
var buffer = new Buffer(matches[2], 'base64');
blobsrv.createBlockBlobFromText('mycontainer','profile-pic-123.jpg', buffer, {contentType:type}, function(error, result, response) {
if (error) {
console.log(error);
}else{
console.log(result)
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2925 次 |
| 最近记录: |