1.0.1 • Published 8 years ago

@f/s3-upload v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 years ago

s3-upload

Build status Git tag NPM version Code style

Upload a file to s3

Installation

$ npm install @f/s3-upload

Usage

var s3Upload = require('@f/s3-upload')

function uploadFile (file, cb) {
  // Request an S3 credential from the server
  return api
    .get('/upload')
    .then(S3 => s3Upload({
      file,
      S3
    }, cb))
}

API

s3Upload(config, progress, done)

  • config - Configure the upload (the file is passed here)
  • progress - Progress callback. Called with a floating point value indicating the percentage done.
  • done(err, url) - Called when the upload is finished. An error is passed as the first argument if one happens. If successful, the url of the uploaded resource is returned as the second parameter.

Config

  • file - The file you want to upload
  • S3 - An S3 credential object
  • type - File mime type. If not specified, pulled from the file object
  • name - The name of the file to upload. If not specified, grabbed from file.name
  • protocol - Protocol (e.g. http|https). If not specified uses window.location.protocol (be mindful of this if using it on the server, an error will be thrown if `protocol isn't specified).
  • attachment - Whether or not this file has a content-disposition of attachment (will cause a download dialog to open when the link is requested later). Optional.
  • meta - Object of AWS S3 meta headers / values to pass. Optional.

S3 Credential

  • signature - A signature of the other properties
  • bucket - The bucket you are authorized to upload to
  • policy - The policy of the upload (e.g. how big the file can be)
  • key - Access key id
  • acl - Acl for the upload

License

MIT