使用AWS开发工具包将blob转换为PDF并保存到S3

时间:2018-11-13 05:54:45

标签: javascript amazon-web-services amazon-s3

我正在尝试将文档文件转换为PDF并使用浏览器上传到S3

我用来转换文件的API返回了blob。如何将blob转换为PDF文件并将其保存到S3

当前我的代码如下

function addFile(file) {
    console.log("File!", file);

    var fileName = Date.now().toString();
    var albumPhotosKey = encodeURIComponent("files") + '/';

    var photoKey = albumPhotosKey + fileName;
    s3.upload({
        Key: photoKey,
        Body: file + ".pdf",
        ACL: 'public-read'
    }, function(err, data) {
        if (err) {
            console.log(err);
            return alert('There was an error uploading your photo: ', err.message);
        }
        alert('Successfully uploaded photo.');
    });
}

我尝试使用此将blob转换为文件

var file = new File([blobData], "filename.pdf", {type: "application/pdf", lastModified: Date.now()});

,然后将文件传递给addFile()函数,但是它创建了一个包含[object File].pdf作为其内容的文件。

如何创建包含斑点内容的PDF文件?

1 个答案:

答案 0 :(得分:0)

要快速将base64字符串转换为PDF并以s3格式写入文件,我使用了这种方法-

    const AWS = require('aws-sdk');
    const S3 = new AWS.S3();
    const base64String = 'abcxyz';
    let buffer = new Buffer.from(base64String, 'base64');
    let params = {
        Bucket : 'your-bucket-name',
        Key : 'user.pdf', 
        Body : buffer
    }
    S3.upload(params, (err, data) => {
        if (err) {
            console.log(err)
        } else
            console.log(data.Location)
    })

好吧,另一种方法是首先使用“ fs”模块在本地计算机上从该字符串创建pdf。 并将其提交给S3,请先阅读该pdf文件,然后再上传至s3。但这是一个懒惰的过程,我个人不建议这样做。

希望有帮助。