@guoyunhe/downloader
Version:
Download large files with minimum RAM usage. Support tar.gz and zip extraction.
62 lines (45 loc) • 1.33 kB
Markdown
Download large files with minimum RAM usage. Support tar.gz and zip extraction.
```bash
npm i @guoyunhe/downloader
```
Download a simple file
```ts
import { download } from '@guoyunhe/downloader';
await download('https://example.com/logo.png', 'dist/path/logo.png');
```
Download and extract tar.gz or zip archive
```ts
import { download } from '@guoyunhe/downloader';
await download('https://example.com/data.tar.gz', 'dist/path/', { extract: true });
// Output:
// └── export-2023-01-01
// └── data
// ├── spec.xml
// ├── report.pdf
// └── raw.dat
```
Reduce extraction file path by two folder
```ts
import { download } from '@guoyunhe/downloader';
await download('https://example.com/data.tar.gz', 'dist/path/', { extract: true, strip: 2 });
// Output:
// ├── spec.xml
// ├── report.pdf
// └── raw.dat
```
Receive download progress updates
```ts
import { download } from '@guoyunhe/downloader';
await download('https://example.com/data.tar.gz', 'dist/path/data.tar.gz', {
onProgress(progress) {
if (progress.totalBytes === null) {
console.log(`${progress.downloadedBytes} bytes downloaded`);
} else {
console.log(`${progress.percentage?.toFixed(2)}%`);
}
},
});
```