@linzjs/s3fs
TypeScript icon, indicating that this package has built-in type declarations

6.9.1 • Public • Published

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'))

Readme

Keywords

none

Package Sidebar

Install

npm i @linzjs/s3fs

Weekly Downloads

13

Version

6.9.1

License

MIT

Unpacked Size

54.7 kB

Total Files

31

Last publish

Collaborators

  • linzds
  • blacha
  • philals