Javascript 如何将pdf文件保存到s3和本地以及节点js
我陷入了无法解决的困境。我正在上传文件并通过req.files获取它。我添加了中间件,它将文件上传到S3。我什么都试过了,但做不到。上传到S3工作正常,但无法将文件保存在本地路径中。当我尝试通过fs.writeFile时,它会保存已损坏的文件 有人能帮我吗 中间件功能Javascript 如何将pdf文件保存到s3和本地以及节点js,javascript,node.js,amazon-s3,fs,Javascript,Node.js,Amazon S3,Fs,我陷入了无法解决的困境。我正在上传文件并通过req.files获取它。我添加了中间件,它将文件上传到S3。我什么都试过了,但做不到。上传到S3工作正常,但无法将文件保存在本地路径中。当我尝试通过fs.writeFile时,它会保存已损坏的文件 有人能帮我吗 中间件功能 uploadToS3bucket: (path) => { return multer( { storage: multerS3({ s3:
uploadToS3bucket: (path) => {
return multer(
{
storage: multerS3({
s3: s3,
acl: 'public-read',
bucket: AWS_BUCKET_NAME,
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
const params = Object.keys(req.params).map(key => {
return req.params[key]
}).join('/');
const key = path + '/' + params + (params.length > 0 ? '/' : '') + shortUUID.generate() + "-" + file.originalname;
cb(null, key)
}
})
}
)
}
路线
router.post('/resume', uploadToS3bucket('temp').fields([
{name: 'resume', maxCount: 1}
]), resumeCtrl.getUserResume);
我试过了
// in metadata function
fs.writeFile('python/resume_parser/data/input/resume/' + file.originalname, file, (err) => {
if (err) throw err;
});
及
它正在保存pdf,但已损坏。
有人能帮我吗?
谢谢
文件
是一个对象,而不是文件内容。在元数据中显示console.log(file)
的输出,以查看在某些属性中是否有Buffer
。这就是我得到的{fieldname:'resume',originalname:myResume.pdf',编码:'7bit',mimetype:'application/pdf',您正在将其保存到文件中,而这不是pdf。您不能在元数据
功能中本地保存。我如何保存pdf以及任何解决方案?
request({uri: 'http://localhost:3000/v1/user/resume', headers: { 'Content-type' : 'applcation/pdf', 'encoding': 'binary' }} , function (error, response, body) {
if (!error) {
fs.writeFile("python/resume_parser/data/input/resume/"+ file.originalname, body , function (err) {
});
}
})