如何在Node.js中将文件上传至AWS S3存储桶的指定文件夹?
上传文件到S3指定路径的方法
在S3中并没有真正的“文件夹”,所谓的目录都是通过对象键(Key)的前缀来模拟的。你只需要在Key参数里加上images/前缀,就能把文件放到/images路径下。
修改后的代码
async uploadFile(file: any) { try { console.log(file); const s3Params = { Bucket: xyz, // 给文件名加上images/前缀,模拟目录路径 Key: `images/${file.originalname}`, Body: file.buffer, }; // 注意:s3.upload返回Promise,无需回调,这样错误能被try/catch捕获 const data = await s3.upload(s3Params).promise(); console.log({ data }); } catch (error) { return { data: null, error, status: 500 }; } }
额外说明
你原来的代码存在await与回调混用的问题:传入回调时upload不会返回Promise,导致await无效,且回调内的错误无法被try/catch捕获。改成调用.promise()的方式,才能正确利用异步语法并统一错误处理。
内容的提问来源于stack exchange,提问作者vaibhav deep
相关产品推荐
相关产品推荐

