Я пытаюсь написать функцию, которая берет mp3-адрес записи и затем загружает ее на S3.Тем не менее, я продолжаю получать ошибки во время выполнения, и обратный вызов никогда не достигается.Если я переместу обратный вызов ниже s3.upload(...)
, то утверждение «попытка загрузки mp3 никогда не будет зарегистрировано.
exports.handler = function(context, event, callback) {
const twiml = new Twilio.twiml.VoiceResponse();
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
var getUri = require('get-uri');
AWS.config.update({
accessKeyId: "...",
secretAccessKey: "..."
});
var client = context.getTwilioClient();
const recording_id = event.RecordingSid;
const uri = event.RecordingUrl + ".mp3";
getUri(uri, function (err, rs) {
if (err) {
console.log(err.message);
throw err;
}
var params = {
ACL: "public-read",
Body: rs,
Bucket: "...",
Key: "audio.mp3",
ContentType: 'audio/mp3'
};
s3.upload(params, function(err,data) {
console.log("attempting to upload mp3");
if (err) {
console.log("there is an error");
console.log(err.status);
throw err.message;
}
else {
console.log("Your upload has been successful.");
}
callback(null, twiml);
});
});
console.log("at the end");
};
Есть ли другой способ получить доступ к записи и поместить их в мое общедоступное ведро s3? Почемуэто никогда не выполняется s3.upload(...)
.
Любое понимание этого полезно! Заранее спасибо!