Похоже, что нет хорошего способа сделать это. Одной из причин этого может быть то, что библиотека-нодвиглазная библиотека сохраняет загруженный файл на диск. Я не мог найти какие-либо варианты сделать иначе. Библиотека knox берет сохраненный файл на диск и, используя ваши учетные данные Amazon S3, загружает его в Amazon.
Так как в Heroku я не могу сохранять файлы локально, я использовал службу transloadit . Хотя их аутентификация документы имеют некоторую кривую обучения, я нашел эту услугу полезной.
Для тех, кто хочет использовать transloadit с помощью node.js, может помочь следующий пример кода (страница transloadit содержит только примеры Ruby и PHP)
var crypto, signature;
crypto = require('crypto');
signature = crypto.createHmac("sha1", 'auth secret').
update('some string').
digest("hex")
console.log(signature);