import pMap from 'p-map'; import { readdir, lstat } from 'node:fs/promises'; import { createReadStream } from 'node:fs'; import * as path from 'node:path'; const config = { endpoint: process.env.BUNNY_STORAGE_ENDPOINT, password: process.env.BUNNY_STORAGE_PASSWORD, bucket: process.env.BUNNY_STORAGE_BUCKET }; const files = await readdir('./_site', { recursive: true }); await pMap(files, async (file) => { const filePath = path.join('./_site', file); const stat = await lstat(filePath); if (stat.isDirectory()) return; const url = `https://${config.endpoint}/${config.bucket}/${file}`; console.log(`Uploading ${filePath} to ${url}`); const readStream = createReadStream(filePath); await fetch(url, { method: 'PUT', headers: { accessKey: config.password, }, body: readStream, duplex: 'half' }); }, { concurrency: 50 });