Tôi đang cố gắng tải hình ảnh lên S3 nhưng khi tôi gọi s3.putObject (params, callback), gọi lại của tôi không bao giờ được gọi và không có lỗi nào được ghi lại.S3.putObject - gọi lại không bao giờ được gọi là
Dưới đây là các mã có liên quan:
var params = {
Key: key,
Body: imageData,
ContentLength: imageData.byteCount,
ContentType: contentType,
};
this.s3.putObject(params, function(err, data) {
console.log('here');
if (err) {
callback(err);
return;
}
callback(null, key);
});
đâu params là { Key: 'e2f99bf3a321282cc7dfaef69fe8ca62.jpg', Body: {imageData parsed from request using node-multiparty}, ContentLength: 27802, ContentType: 'image/jpeg', }
Tôi đã xác minh rằng this.s3 là hợp lệ và typeof this.s3.putObject là chức năng như mong đợi.
Bạn có thể nhận được một số thông tin chi tiết bằng cách cài đặt và yêu cầu mô-đun 'nock' từ npm sẽ in chính xác URL nào đang được yêu cầu. Nếu chương trình bị treo chờ đợi cuộc gọi lại, có lẽ tường lửa sẽ bỏ qua nỗ lực kết nối TCP. Bạn đã để chương trình treo trong vài phút để xem liệu nó có hết thời gian và gọi lại không? –
Chương trình của bạn có được thực thi trước khi sự kiện async có thể trả về một giá trị không? Xem một chủ đề tương tự với AWS Lambda: https://stackoverflow.com/questions/28449363/why-is-this-http-request-not-working-on-aws-lambda –