我正在尝试从rss提要中下载MP3,然后将其上传到S3存储桶-我非常确信XML可以正确解析并且文件正在下载。我认为问题出在上传部分。任何人都对为什么它不起作用有任何见解?
多次尝试调试问题所在-还对AWS权限进行了三重检查-我的IAM帐户具有对S3的完全管理员权限
let parser = new Parser();
const fs = require('fs');
var request = require('request');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
parser.parseURL('https://bridgetown.podbean.com/feed.xml', (err, feed) =>
request(feed.items[0].enclosure.url, function (err, response){
uploadFileToS3(response, feed.items[0].title + '.mp3')
}));
const uploadFileToS3 = (file, fileName, callback) => {
s3.upload({ Bucket: bucketName, Key: fileName, Body: file }, (err, data) => {
if (err) {
console.log(err)
} else {
console.log("Successfully uploaded data to " + bucketName );
callback(data);
}
});
}
所以我在console.log中什么也没得到-所以让我认为body:文件参数有问题
答案 0 :(得分:0)
您正在直接从request
获取HTTP响应对象,并尝试将其作为文件上传。
您应该改为使用响应正文二进制文件并将其上传。使用request
回调(function (err, response, body)
)的第三个参数,或者自己从响应对象解析主体,以防在获取正确数据类型的响应时遇到麻烦(可能是{{ 1}},Buffer
或Blob
)。