我正在尝试将文档文件转换为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文件?
答案 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。但这是一个懒惰的过程,我个人不建议这样做。
希望有帮助。