Nodular Pudding Multiverse

    fs-gzip-blob-storage
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    fs-gzip-blob-storage

    Build Status Coverage Status npm

    Blob storage on filesystem, with gzip, streams and promises API.

    This is a wrapper for fs-blob-storage

    Requirements

    This module requires ES6 with Node >= 10.

    Installation

    npm install fs-gzip-blob-storage

    Additionally for Typescript:

    npm install -D @types/node

    Usage

    const {FsGzipBlobStorage} = require("fs-gzip-blob-storage")

    Typescript:

    import FsGzipBlobStorage from "fs-gzip-blob-storage"
    // or
    import {FsGzipBlobStorage} from "fs-gzip-blob-storage"

    DEFAULT_EXT

    The default ext option is ''

    DEFAULT_GZIP_EXT

    The default gzipExt option is '.gz'

    DEFAULT_PART

    The default part option is '.part'

    constructor

    const storage = new FsGzipBlobStorage(options)

    Options:

    • ext is a default ext argument for methods (optional, default: DEFAULT_EXT)
    • part is a default part argument for methods (optional, default: DEFAULT_PART)
    • exclusive if is true then can't create new object if already exists with the same key (optional, default: false)
    • gzipExt is an extra extension for gzipped files (optional, default: DEFAULT_GZIP_EXT)
    • gzipOptions is an object with options for gzip/gunzip (optional)
    • path is a directory path of the storage (optional, default: ".")

    Example:

    const storage = new FsGzipBlobStorage({
      path: "/usr/share/man",
      exclusive: true,
    })

    createWriteStream

    const writable = await storage.createWriteStream(key, options)

    Options:

    • ext is a default extension added to file name for the object (optional, default: this.ext)
    • part is a extension added to file name which can be later commited (optional, default: this.part)

    Creates a writable stream for a new object in the storage. Object is gzipped and stored with the file name based on key and ext and gzipExt and part. Throws an error if has occurred and if the file already exists for exclusive mode.

    createReadStream

    const readable = await storage.createWriteStream(key, options)

    Options:

    • ext is a default extension added to file name for the object (optional, default: this.ext)

    Creates a readable stream for an existing, gunzipped object in the storage. Throws an error if has occurred or the object doesn't exist or its size is zero.

    commit

    await storage.commit(key, options)

    Options:

    • ext is a default extension added to file name for the object (optional, default: this.ext)
    • part is a extension added to file name which can be later commited (optional, default: this.part)

    Commits the object in the storage. It means that file name for the object is renamed and the additional extension for partial objects is removed. Throws an error if has occurred or the object doesn't exist.

    remove

    await storage.remove(key, options)

    Options:

    • ext is a default extension added to file name for the object (optional, default: this.ext)

    Removes the object from the storage. Throws an error if has occurred or the object doesn't exist.

    License

    Copyright (c) 2018-2020 Piotr Roszatycki piotr.roszatycki@gmail.com

    MIT

    Install

    npm i fs-gzip-blob-storage

    DownloadsWeekly Downloads

    34

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    19.4 kB

    Total Files

    10

    Last publish

    Collaborators

    • dex4er