feathers-blob-store

1.0.1 • Public • Published

feathers-blob-store

Build Status

Feathers abstract blob store service

Installation

npm install feathers-blob-store --save

Also install a abstract-blob-store compatible module.

API

import BlobStore from 'feathers-blob-store'

blobStore = BlobStore(options)

  • options.Model is an instantiated interface [that implements the abstract-blob-store API)
  • options.id is a string 'key' for the blob identifier.

blobStore.create(body, params)

where input body is an object with key uri pointing to data URI of the blob.

returns output 'data' of the form:

{
  [this.id]: `${hash(content)}.${extension(contentType)}`,
  uri: body.uri,
  size: length(content)
}

blobStore.get(id, params)

returns output data of the same form as create.

blobStore.remove(id, params)

Example

import { getBase64DataURI } from 'dauria';
import BlobStore from 'feathers-blob-store';
import AWS from 'aws-sdk';
import S3BlobStore from 's3-blob-store';
 
const s3 = new AWS.S3({
  accessKeyId: process.env.AWS_ACCESS_KEY_ID,
  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
});
 
const blobStore = S3BlobStore({
  client: s3,
  bucket: 'feathers-blob-store'
});
 
const blobService = service({
  Model: blobStore
});
 
const blob = {
  uri: getBase64DataURI(new Buffer('hello world'), 'text/plain')
}
 
app.service('blobs').create(blob).then(function (result) {
  console.log('Stored blob with id', result.id);
}).catch(err => {
  console.error(err);
});

For a more complete example, see examples/app which can be run with npm run example.

Changelog

1.0.0

0.1.0

  • Initial release for AWS.S3 using aws-sdk

License

Copyright (c) 2016

Licensed under the MIT license.

Package Sidebar

Install

npm i feathers-blob-store

Weekly Downloads

6

Version

1.0.1

License

MIT

Last publish

Collaborators

  • ahdinosaur