1.0.1 • Published 5 years ago

do-aws-forklift v1.0.1

Weekly downloads
-
License
ISC
Repository
bitbucket
Last release
5 years ago

aws-sdk based kinda high level s3 uploader for AWS and Digital Ocean. It wraps upload method of aws-sdk. For file upload, ContentType automatically added. Also, it can remove uploaded file from the file system, after upload completed successfully.

Install

$ npm install

Test

Rename secret.example.json to secret.json with valid credentials and bucket-name. Then, run test via ;

$ npm run test

Requirements

  • Node.js 6+

Initialize

const  Forklift = require("/path/forklift");



// Initialize;

const  forklift = new  Forklift({

cloud:	"<CLOUD_NAME>" // do or aws

accessKey:  "<YOUR_ACCESS_KEY>",

secretKey:  "<YOUR_SECRET_KEY>",

bucket:  "<BUCKET_NAME>",

region:  "<REGION>"

s3params: {ACL:  "bucket-owner-read"} // optional, default: {ACL: "public-read"}

});

Upload

  • source should be string (file path) or readable stream.

  • s3RemotePath s3 path.

  • options are optional. Besides the all the options of original AWS upload, Digital Ocean upload you can pass {remove: true} to remove the source if the source is a file after upload completed successfully.

const  url = await  forklift.upload(source, s3RemotePath, /*options*/);

// region + bucket merged to get url as absolute

// like; https://s3.amazonaws.com/bucket_name/file_path
// like; https://digitaloceanspaces.com/bucket_name/file_path

  

What should I do with the version change?

  • Format is should be ( Major . Minor . Fix ) (1.0.0)
  • If the change is bug fix, Fix version should be increased (1.0.1)
  • If changes is made in prerequisite, requires testing, requires changes to the test documentation, add new endpoint or edit existing endpoint Minor version should be increased (1.1.0)
  • If the usage is changed, added new features or big changes Major version should be increased (2.0.0)

Contribution guidelines

  • Writing tests
  • Code review
  • Other guidelines

Example

// To upload file

// ContentType automatically retrieved from file name and passed to S3.upload

// if you want to override it, you should pass {ContentType:"<CONTENT_TYPE>"} as options.

  

const  url = await  forklift.upload("test.jpg", "test/test.jpg");

  

// example for version 1.0.0

// To upload and then remove the file with callback

forklift.upload("test.jpg", "test/test.jpg", {remove:  true}, (error, url) => {

});

  

// To upload a stream without ContentType

const  url = await  forklift.upload(fs.createReadStream("test.jpg"), "test/test.jpg");

  

// To upload a stream with ContentType

const  url = await  forklift.upload(fs.createReadStream("test.jpg"), "test/test.jpg", {ContentType:"image/jpeg"});
1.0.1

5 years ago

1.0.0

5 years ago