1.1.8 • Published 9 months ago

tspace-nfs v1.1.8

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

tspace-nfs

NPM version NPM downloads

tspace-nfs is a NFS stands for Network File System and provides both server and client capabilities for accessing files over a network.

Install

Install with npm:

npm install tspace-nfs --save

Basic Usage

Server

import { NfsServer } from "tspace-nfs";

new NfsServer()
.onCredentials(async ({ token , secret , bucket }) => {

  // The simple example, you can use any database or another to a wrapper check the credentials.
  const lists = [
    {
      token: 'token-dev',
      secret: 'secret-dev',
      bucket : 'dev'
    }
  ]
  return lists.every(list => list.bucket === bucket && list.secret === secret && list.token === token)
})
.progress() // view the progress of the file upload.
.defaultPage(`<b> hello nfs-server! </b>`)
.directory('upload') // by default nfs
.credentials({
  expired : 60 * 60 * 24, // 24 hours by default 1 hour
  secret  : 'credential-secret'
}) // the credentials will auto refresh every expired
fileExpired(60 * 15) // 15 minutes by default 1 hour
.listen(8000 , ({ port }) => console.log(`Server is running on port http://localhost:${port}`))

Client

import { NfsClient } from "tspace-nfs";

const nfs = new NfsClient({
  token     : '<YOUR TOKEN>',   // token
  secret    : '<YOUR SECRET>',  // secret
  bucket    : '<YOUR BUCKET>',  // bucket name
  url       : '<YOUR URL>'      // https://nfs-server.example.com
})
.onError((err, nfs) => {
  console.log('nfs client failed to connect')
  console.log(err.message)
  nfs.quit()
})
.onConnect((nfs) => {
  console.log('nfs client connected')
})

(async () => {

  const fileDirectory = 'my-cat.png'

  const url = await nfs.toURL(fileDirectory , { download : false , expired : 60 * 60 }) // default download true , default expired related by nfs-server

  const base64 = await nfs.toBase64(fileDirectory)

  const stream = await nfs.toStream(fileDirectory)

  const file = files[0] // assume the file from your upload

  const { path , size , name } =  await nfs.upload({
    file : file.tempFilePath,
    name : 'my-video.mp4',
    folder : 'my-folder'
  })

   await nfs.uploadBase64({
    base64 :  Buffer.from(file.tempFilePath).toString('base64'),
    name   : 'my-video.mp4',
    folder : 'my-folder'
  })

  const deleted = await nfs.delete(fileDirectory)

  const folders = await nfs.folders()

  const storage = await nfs.storage()

})()
1.1.9-beta.8

9 months ago

1.1.8

10 months ago

1.1.7

11 months ago

1.1.6

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3-beta.1

11 months ago

1.1.9-beta.1

10 months ago

1.1.9-beta.2

10 months ago

1.1.9-beta.3

9 months ago

1.1.9-beta.4

9 months ago

1.1.9-beta.5

9 months ago

1.1.9-beta.6

9 months ago

1.1.9-beta.7

9 months ago

1.1.3

12 months ago

1.1.2

12 months ago

1.1.1-beta.1

12 months ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago