((free)) Downloading Multiple Files From Google Drive Access
res.attachment('download.zip'); archive.pipe(res);
import useState from 'react'; import googleDriveApi from './api'; const BulkDownload = () => { const [selectedFiles, setSelectedFiles] = useState([]); const [progress, setProgress] = useState({}); downloading multiple files from google drive
for (const fileId of fileIds) const fileMeta = await drive.files.get( fileId, fields: 'name,mimeType' ); let fileStream; import useState from 'react'
if (fileMeta.data.mimeType.includes('application/vnd.google-apps')) // Export Google Workspace file const exportMime = 'application/pdf'; const response = await drive.files.export( fileId, mimeType: exportMime, , responseType: 'stream' ); fileStream = response.data; else // Regular binary file const response = await drive.files.get( fileId, alt: 'media', , responseType: 'stream' ); fileStream = response.data; import googleDriveApi from './api'
await archive.finalize();
archive.append(fileStream, name: fileMeta.data.name + '.pdf' );
const handleDownload = async () => const response = await googleDriveApi.downloadMultiple(selectedFiles.map(f => f.id)); const blob = await response.blob(); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'drive_download.zip'; a.click(); ;