Transfer files from google cloud storage to aws s3 bucket
exports.helloWorld=async(req,res)=>{letmessage=req.query.message||req.body.message||'Hello World!';constdatasetId="";constbucketName=BUCKET_NAME;varloop=newDate();vardate=('0'+loop.getDate()).slice(-2);varmonth=('0'+loop.getMonth()+1).slice(-2);varyear=loop.getFullYear();consttableId="events_"+year+month+date;constfilename="events-"+year+month+date+".json";// Location must match that of the source table.constoptions={location: 'US',gzip: true,};const[job]=awaitbigquery.dataset(datasetId).table(tableId).extract(storageTwo.bucket(bucketName).file(filename),options);console.log(`Job ${job.id} created.`);const[files]=awaitstorageTwo.bucket(BUCKET_NAME).getFiles();files.forEach(file=>{if(file.name===filename){varfile=storageTwo.bucket(BUCKET_NAME).file(file.name);file.getSignedUrl({version: 'v4',action: 'read',expires: Date.now()+60*60*1000,// 15 minutes},function(err,url){if(err){console.error(err);}axios.get(url,{responseType: 'arraybuffer'}).then(response=>{constbuffer=Buffer.from(response.data,'base64');return(async()=>{lettype=(awaitfileType.fromBuffer(buffer)).mimevarparams={Key: file.name,Body: buffer,Bucket: '',ContentType: type,ACL: 'private'//becomes a public URL}AWS.config.update({accessKeyId: '',secretAccessKey: ''})vars3=newAWS.S3()s3.upload(params).promise().then((response)=>{console.log('response',response);},(err)=>{console.log('err 2',err);})})();}).catch(err=>{console.log('err 3',err);});});}});res.status(200).send(message);};