Я пытаюсь временно загрузить несколько файлов pdf из внешних источников на мой сервер nodejs (в Heroku) и загрузить его в AWS S3 bucket.
Я пробовал несколько методов, каждый из которых отлично работает на моем локальном компьютере, но не на сервере Heroku Dyno NodeJS. Я не могу даже создать папку в Heroku. Я думаю, из-за ограниченного разрешения.
В узле
1) с использованием var download = require ('download-file') (используя это в настоящее время в коде ниже)
2) ax ios
3) res.download ()
Загрузить файлы Код
const downloadFiles = async (unique_files) => {
for (let index = 0; index < unique_files.length; index++) {
let file_ext = unique_files[index].substr(unique_files[index].length - 4);
if(file_ext == ".pdf") {
await downloadzz(unique_files[index])
}
}
}
function downloadzz(link) {
download(link, function(err){
if (err) throw err
console.log("DOWNLOAD Complete");
});
}
Загрузить файлы Код
const uploadFiles = async (unique_files) => {
for (let index = 0; index < unique_files.length; index++) {
let file_ext = unique_files[index].substr(unique_files[index].length - 4);
if(file_ext == ".pdf") {
await uploadzz(unique_files[index])
}
}
}
function uploadzz(link) {
fs.readFile(require('path').resolve(__dirname+'/../external-pdfs/', link.slice(link.lastIndexOf('/') + 1)), function (err, data) {
params = {Bucket: pdfBucket, Key: link.slice(link.lastIndexOf('/') + 1), Body: data, ACL: "public-read" };
s3.putObject(params, function(err, data) {
if (err) {
console.log("Failed Upload", err);
} else {
console.log("Successfully uploaded data to bucket", data);
}
});
});
}
Я не получаю никакой ошибки, но, похоже, на сервере heroku папка с именем external-pdfs не существует.
Я открыт для лучших решений: например, для прямой загрузки файла с внешнего URL-адреса в s3 ... Как я могу прочитать файл с внешнего URL-адреса и напрямую загрузить в AWS S3 bucket?