recordio-s3

A node-task RecordIO interface for Amazon S3.

npm install recordio-s3
4 downloads in the last month

recordio-s3

A node-task RecordIO interface for Amazon S3

API

read(path, options)

Read a file from Amazon S3 and return a promise which resolves to a node-task Record representing it.

The options object supports these keys:

  • client A knox S3 client (required).
  • encoding The encoding of the file to be read.
var recordio = require('recordio-s3');
var options = {
  client: require('knox').createClient({
    key: '<key>',
    secret: '<secret>'
    bucket: '<bucket>,
    secure: false
  })
};
recordio.read('test.txt', options).then(function (self) {
  console.log(self) // <Record "test.txt" <Buffer ....>>
});

write(record, options)

Save a node-task record to Amazon S3.

The options object supports these keys:

  • client A knox S3 client (required).
  • headers Set headers for uploaded file (far-future, etc).
  • acl A valid Canned ACL. Defaults to 'private'. Can also be public-read, public-write, public-read-write, authenticated-read. This is a convenience option for setting the x-amz-acl header.
var Record = require('record');
var recordio = require('recordio-s3');
var options = {
  client: require('knox').createClient({
    key: '<key>',
    secret: '<secret>'
    bucket: '<bucket>,
    secure: false
  }),
  acl: 'private', // 'public-read' | 'public-read-write' | 'authenticated-read'
  headers: {
    "Cache-Control": "max-age=315360000"
  }
};

var record = new Record('test.txt', 'utf8', 'test file');
recordio.save(record, opts).then(function(self) {
  console.log(self); // <Record "test.txt" <Buffer 74 65 73 74 20 66 69 6c 65>>
});

Running Tests

To run the test suite you must first have an S3 account. Then create a file named ./test/s3.json, which contains your credentials and test bucket in this format:

{
  "key": "<api-key-here>",
  "secret": "<secret-here>",
  "bucket": "<your-bucket-name>"
}
npm loves you