文档首页/ 对象存储服务 OBS/ SDK参考/ BrowserJS/ FAQ/ 如何上传base64编码的图片
更新时间:2024-02-22 GMT+08:00

如何上传base64编码的图片

base64先转码成指定格式图片,然后调用OBS上传接口进行上传。
const base64ImgtoFile = function base64ImgtoFile(base64Content, filename) {
    const arr = base64Content.split(',');
    const mime = arr[0].match(/:(.*?);/)[1];
    const bstr = atob(arr[1]);
    let n = bstr.length;
    const u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    // 如果环境支持文件格式, 也可以使用: return new File([u8arr], filename, { type: mime });
    return new Blob([u8arr], { type: mime });
};
// obsClient表示OBS client实例
const uploadBase64Img = function uploadBase64Img(obsClient) {
    // base64格式的内容
    const base64Content = "data:image:xxxxxxxxxxxxx";
    const filename = 'img.png';
    const imgfile = base64ImgtoFile(base64Content, filename);
    obsClient.putObject({
        Bucket: 'bucketname',
        Key: filename,
        SourceFile: imgfile
    }, function (err, result) {
        if (err) {
            console.error('Error-->' + err);
        } else {
            console.log('Status-->' + result.CommonMsg.Status);
        }
    });
};