我有一个应用程序,允许用户通过上传自己的音频片段或使用aws polly生成对话框来创建音频故事。上载剪辑的效果很好,我正在使用amplify来从s3存储桶中放入和设置文件,并将访问权限设置为“私人”。
问题:Polly在s3中不会将生成的音频文件与上载的音频文件放在同一位置,并且我认为使用polly的startSpeechSynthesisTask函数时无法指定保护级别。在this question中建议我可以再次调用s3来更改对象的ACL。如果这对我的用例有用,我想检测到SpeechSynthesis任务何时完成并自动触发s3代码。
如何检测startSpeechSynthesisTask函数何时完成?我需要调用哪些s3方法来将对象的权限更改为特定的认知用户?
这是我当前从lambda呼叫polly的方式:
var params = {
OutputFormat: 'mp3', /* required */
OutputS3BucketName: `my-bucket`, /* required */
OutputS3KeyPrefix: '',
Text: req.body.script, /* required */
VoiceId: req.body.voice, /* required */
};
polly = new AWS.Polly();
polly.startSpeechSynthesisTask(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data);
res.json({success: 'post call succeed!', url: req.url, data: data})
}
});