首页 > 解决方案 > 从前端 -> 节点 js -> s3 将 pdf 上传到 s3

问题描述

前端应用:

const readURL = (input) => {
    if (input.files && input.files[0]) {
      let reader = new FileReader();
      reader.fileName = input.files[0].name;
      reader.onload = async function (e) {
        uploadPhoto(reader, e);
      };

      reader.readAsDataURL(input.files[0]);
    }
  };

const uploadPhoto = (reader, e) =>  {
    let client = new ServerData();
    client.put("/images/upload", {
      imageBase64: reader.result,
      name: e.target.fileName,
      typeOfUpload: "xxxx-bank",
    }).then(uploadResult => {
       ....
    })
  };

后端node.js


fileContent = base64Image // directly from frontend
fileContent = Buffer.from(base64Image,'base64'); //tried this as well 



let params = {
            Bucket: 'bucket',
            Key: 'name.pdf',
            Body: fileContent,
            ContentEncoding: 'base64',
            ACL: 'private'
        }

let upload = new AWS.S3.ManagedUpload({
            params: params
        });

注意fileContent 它有效的图像,我正在使用

Buffer.from(base64Image.replace(/^data:image\/\w+;base64,/, ""),'base64');

标签: pdfamazon-s3encodingbase64

解决方案


解决方案是

Buffer.from(base64Image.replace(/^data:.+;base64,/, ""),'base64');

推荐阅读