上传流到s3

  • 本文关键字:s3 node.js
  • 更新时间 :
  • 英文 :


我读取Pipe一个流到s3.upload()但我有困难,我不确定这是否真的解决了,我试过了。

我正在做的是一个get调用www.example.com。这返回一个流,我想把这个流上传到s3。

这是我的尝试。

fetch('https://www.example.com',fileName{
method: 'GET',
headers: {
'Authorization': "Bearer " + myAccessToken,

},
})
.then(function(response) {
return response.text();
})
.then(function(data) {
uploadToS3(data)
});

const uploadToS3 = (data) => {

// Setting up S3 upload parameters
const params = {
Bucket:myBucket,
Key: "fileName",
Body: data
};
// Uploading files to the bucket
s3.upload(params, function(err, data) {
if (err) {
throw err;
}
console.log(`File uploaded successfully. ${data.Location}`);
});
};

output:///File upload successfully.输出说明https://exampleBucket.s3.amazonaws.com/fileName.pdf

但是这里是空白的

我明白了,但我没有继续使用fetch。我下载文件,然后上传。然后删除文件。

function  getNewFilesFromExampleDotCom(myAccessToken, fileName, fileKey) {
let url2 = 'https://example.com' + fileKey;
axios
.get(url2, {
headers: { 'Authorization': "Bearer " + myAccessToken },
responseType: 'stream', 
})
.then(response => {
let file = fileName;
response.data.pipe(fs.createWriteStream(file))

let myFileInfo = [];
if( myFileInfo.length > 0){
myFileInfo.splice(0,  myFileInfo.length)
}
myFileInfo.push(file)       
processArray(myFileInfo)
console.log(file + " saved")
})
.catch(error => console.log(error));
}
async function processArray(array) {
for (const item of array) {
await delayedLog(item);
}
console.log('Downloaded!');
console.log('Uploading to s3!');
}

function delay() {
return new Promise(resolve => setTimeout(resolve, 300));
}

async function delayedLog(item) {
await delay();
uploadFiles(item)  
}
async function uploadFiles(file){
uploadToS3List(file)

await new Promise((resolve, reject) => setTimeout(resolve, 1000));
deleteMyFiles(file)
}

const uploadToS3List = (fileName) => {
// Read content from the file
const fileContent = fs.readFileSync(fileName);
// Setting up S3 upload parameters
const params = {
Bucket:"myBucketName",
Key: fileName,
Body: fileContent
};
// Uploading files to the bucket
s3.upload(params, function(err, data) {
if (err) {
throw err;
}
console.log(`File uploaded successfully. ${data.Location}`);
});
};

function deleteMyFiles(path){
fs.unlink(path, (err) => {
console.log(path + " has been deleted")
if (err) {
console.error(err)
return

}

})
}

相关内容

  • 没有找到相关文章

最新更新