loopback-storage-service

    1.0.4 • Public • Published

    loopback-storage-service

    LoopBack storage service provides Node.js and REST APIs to manage binary contents using pluggable storage providers, such as local file systems, Amazon S3, or Rackspace cloud files. We use pkgcloud to support the cloud based storage services including:

    • Amazon
    • Rackspace
    • Openstack
    • Azure

    The binary artifacts are organized with containers and files. A container is the collection of files. Each file will belong to a container.

    Define a model with the loopback-storage-service connector

    LoopBack exposes the APIs using a model that is attached to a data source configured with the loopback-storage-service connector.

    var ds = loopback.createDataSource({
        connector: require('loopback-storage-service'),
        provider: 'filesystem',
        root: path.join(__dirname, 'storage')
    });
    
    var container = ds.createModel('container');
    

    The following methods are mixed into the model class:

    • getContainers(cb): List all containers

    • createContainer(options, cb): Create a new container

    • destroyContainer(container, cb): Destroy an existing container

    • getContainer(container, cb): Look up a container by name

    • uploadStream(container, file, options, cb): Get the stream for uploading

    • downloadStream(container, file, options, cb): Get the stream for downloading

    • getFiles(container, download, cb): List all files within the given container

    • getFile(container, file, cb): Look up a file by name within the given container

    • removeFile(container, file, cb): Remove a file by name within the given container

    • upload(req, res, cb): Handle the file upload at the server side

    • download(container, file, res, cb): Handle the file download at the server side

    Configure the storage providers

    Each storage provider takes different settings; these details about each specific provider can be found below:

    • Local File System

      { provider: 'filesystem', root: '/tmp/storage' }

    • Amazon

      { provider: 'amazon', key: '...', keyId: '...' }

    • Rackspace

      { provider: 'rackspace', username: '...', apiKey: '...' }

    • OpenStack

      { provider: 'openstack', username: 'your-user-name', password: 'your-password', authUrl: 'https://your-identity-service' }

    • Azure

      { provider: 'azure', storageAccount: "test-storage-account", // Name of your storage account storageAccessKey: "test-storage-access-key" // Access key for storage account }

    REST APIs

    • GET /api/containers

    List all containers

    • GET /api/containers/:container

    Get information about a container by name

    • POST /api/containers

    Create a new container

    • DELETE /api/containers/:container

    Delete an existing container by name

    • GET /api/containers/:container/files

    List all files within a given container by name

    • GET /api/containers/:container/files/:file

    Get information for a file within a given container by name

    • DELETE /api/containers/:container/files/:file

    Delete a file within a given container by name

    • POST /api/containers/:container/upload

    Upload one or more files into the given container by name. The request body should use multipart/form-data which the file input type for HTML uses.

    • GET /api/containers/:container/download/:file

    Download a file within a given container by name

    Keywords

    none

    Install

    npm i loopback-storage-service

    DownloadsWeekly Downloads

    39

    Version

    1.0.4

    License

    Dual Artistic-2.0/StrongLoop

    Last publish

    Collaborators

    • theprez
    • jerry-apic
    • rfeng
    • bajtos
    • rmg
    • hacksparrow
    • jannyhou2016
    • dhmlau
    • emonddr
    • ritch