Вы должны загрузить свой файл на S3 в обратном вызове для события finish потока с возможностью записи.
ws.on('finish', function(){
fs.readFile(localPath, (error, fileContent) => {
uploadToS3(fileContent, newFileName, 'profile_pics', function (err, response) {
...
Вы правы относительно предположения № 2
- rs.on ('end' <- файл еще не записан локально и запускаются следующие процессы. </li>
Другие предположения неверны.
- r.on ('response' <- файл еще не получен и запускаются следующие процессы. </li>
# 1 не имеет значения. Несколько обратных вызовов должны быть в состоянии работать параллельно.
- fs.unlink (localPath <- выполняется до uploadToS3 (fileContent завершен. </li>
# 3, вероятно, неправильно. Я не уверен, что uploadToS3
делает, но, вероятно, он вызывает обратный вызов, когда загрузка завершена, поэтому файл unlinked
после этого