@linzjs/s3fs
v6.9.1
Published
Utility functions for working with files that could either reside on the local file system or inside s3
Downloads
71
Readme
S3 FS
Utility functions for working with files that could either reside on the local file system or inside s3
Usage
import { fsa } from '@linzjs/s3fs';
for await (const file of fsa.list('s3://foo/bar')) {
// ['s3://foo/bar/baz.html', 's3://foo/bar/index.html']
}
for await (const file of fsa.list('/home/blacha')) {
// '/home/blacha/index.html'
}
// Convert the generator to an array
const files = await fsa.toArray(fsa.list('s3://foo/bar'));
This is designed for use with multiple s3 credentials
import {fsa, FsS3} from '@linzjs/s3fs'
const bucketA = new S3({ credentials: bucketACredentials })
const bucketB = new S3({ credentials: bucketBCredentials })
fsa.register('s3://bucket-a', new FsS3(bucketA))
fsa.register('s3://bucket-b', new FsS3(bucketB))
// Stream a file from bucketA to bucketB
await fsa.write('s3://bucket-b/foo', fsa.readStream('s3://bucket-a/foo'))
Or even any s3 compatible api
import {fsa, FsS3} from '@linzjs/s3fs'
const bucketA = new S3({ endpoint: 'http://10.0.0.1:8080' })
const bucketB = new S3({ endpoint: 'http://10.0.0.99:8080' })
fsa.register('s3://bucket-a', new FsS3(bucketA))
fsa.register('s3://bucket-b', new FsS3(bucketB))
// Stream a file from bucketA (10.0.0.1) to bucketB (10.0.0.99)
await fsa.write('s3://bucket-b/foo', fsa.readStream('s3://bucket-a/foo'))