Socket
Book a DemoInstallSign in
Socket

do-aws-forklift

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

do-aws-forklift

[aws-sdk](https://github.com/aws/aws-sdk-js) based kinda high level s3 uploader for **AWS** and **Digital Ocean**. It wraps [upload](http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property) method of aws-sdk. For file upload, `Conte

1.0.1
latest
Source
npmnpm
Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

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"});

FAQs

Package last updated on 06 Mar 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.