node.js - 使用 NodeJS 回调上传到 S3 存储桶必须是一个函数。收到未定义
问题描述
尝试上传到 NodeJS 中的 S3 存储桶,但我不断收到此错误:
##[error]Callback must be a function. Received undefined
##[error]Node run failed with exit code 1
这是我上传的脚本:
var AWS = require('aws-sdk');
const s3 = new AWS.S3({apiVersion: '2006-03-01', accessKeyId: AWS_SECRET_ID, secretAccessKey:AWS_SECRET_KEY, region:AWS_REGION });
var body = fs.open(`./${package}`);
const params = {
Body: body,
Bucket: bucketName
};
s3.upload(params, function(err, data){
if(err){
console.log(`Failed upload to ${bucketName}`);
throw err;
} else {
console.log(`Succesful upload to ${bucketName}`);
}
});
我在这里很困惑,因为我在上传中有回调?其中很多只是从 AWS 示例中复制和粘贴的。
解决方案
fs.open()
接受一个论点,callback
. 这很可能是错误的来源。
该函数是一个异步函数,因此返回的数据需要由回调函数处理。
你会想做:
fs.open(`./${package}`, (err, data) => {
// Implement callback here
});
推荐阅读
- javascript - DeviceOrientation Compass Android
- python-3.x - How to package a python module that imports another module within that package
- react-native - 如何在 Flatlist 中申请 onEndReached?
- angular - ReplaySubject 上的异步和等待
- php - 如何将数据从调度程序发送到 Laravel 5.5 中的 artisan 命令
- reactjs - 如何使用 Firestore 进行高级过滤和排序(电子商务)
- excel - VBA更新for循环中的链接发生得太慢
- java - 如何在框架和组件之间有间隙?
- awk - awk 拆分字段并将拆分放在文件末尾
- java - 为什么我的 glassfish 服务器会重定向到另一台服务器?