I am writing a nodejs function to transfer files from google drive to some other place
Following is the sample code block to get file from drive
var fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
var dest = fs.createWriteStream('/tmp/photo.jpg');
drive.files.get({
fileId: fileId,
alt: 'media'
})
.on('end', function () {
console.log('Done');
})
.on('error', function (err) {
console.log('Error during download', err);
})
.pipe(dest);
instead of piping it to writable stream , I would like to get a readable stream that i can pass on to my function
uploadsomeplace(readableStream)
Update 1
i wrote a function to get that readable stream and upload it again to some folder in google drive (seems dumb but for test as drive.files.creates takes a readable stream)
const transferit = async () => {
var fileId = '0BwwA4oUTe1UVNwOHItT0xfa2M' // some valid id
let somereadstream = drive.files.get(
{ fileId, alt: 'media' },
{ responseType: 'stream' }
)
var folderId = '1oC90HZDLbfYiW2neSCMERHZ8ZH1X' // some valid id
var fileMetadata = {
name: 'photo.jpg',
parents: [folderId]
}
var media = {
mimeType: 'image/jpeg',
// body: fs.createReadStream('image.jpg')
body: somereadstream
}
return await drive.files.create({
resource: fileMetadata,
media: media
// fields: 'id'
})
}
transferit().then(data => console.log(data))
but i get error
(node:6200) UnhandledPromiseRejectionWarning: TypeError: part.body.pipe is not a function