使用节点库上载的图像似乎报告了正确的大小,但似乎已损坏。
报告了与使用Java/PHP
相似的问题takeAux :: Int -> ListS a -> ListS a
使用上述代码,图像文件已成功上传,代码将转换base64上传的内容并写入指定的文件。但是,浏览到公共URL时,图像看起来已损坏/损坏。手动上传的图片符合预期。
答案 0 :(得分:1)
关于节点存储损坏图像的疲倦的解决方案发布here,并且似乎需要删除base64编码图像中的元信息。更新了下面的工作代码
let fileName: string = `${namespace}/${data["name"]}`;
let file: Storage.File = this.bucket.file(fileName);
//add acl, who has access to this file
console.debug("creating/modifying file", fileName);
let base64Source = (data["source"] as string).replace(/^data:image\/(png|gif|jpeg);base64,/,'');
let fileBuffer = new Buffer(base64Source,'base64');
return from(file.save(fileBuffer, { contentType: data["contentType"], public: data["isPublic"] }))
.pipe(map(() => {
return { source: `${this.publicURLPrefix}/${fileName}` }
}));