Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/roccomuso/transfer-sh

Node.js CLI tool for easy file sharing using Transfer.sh
https://github.com/roccomuso/transfer-sh

cli file file-sharing nodejs sharing tool transfer

Last synced: 29 days ago
JSON representation

Node.js CLI tool for easy file sharing using Transfer.sh

Awesome Lists containing this project

README

        

# transfer-sh [![NPM Version](https://img.shields.io/npm/v/transfer-sh.svg)](https://www.npmjs.com/package/transfer-sh) [![Build Status](https://travis-ci.org/roccomuso/transfer-sh.svg?branch=master)](https://travis-ci.org/roccomuso/transfer-sh) [![Dependency Status](https://david-dm.org/roccomuso/transfer-sh.png)](https://david-dm.org/roccomuso/transfer-sh) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) Patreon donate button

> Node.js CLI tool for easy file sharing using Transfer.sh

### Install

The easiest way to get **transfer-sh** is with npm:

$ npm install -g transfer-sh

### CLI Usage

$ transfer hello.txt

Will return a link to the resource and automatically you'll have it copied to your clipboard.

PS. transfer is an alias for transfer-sh.

Encrypt a file using a password:

$ transfer hello.txt -p s3cr3t

### Example

```javascript
var Transfer = require('transfer-sh')

/* Encrypt and Upload */
new Transfer('./Hello.md', {password: 's3cr3t'})
.upload()
.then(function (link) { console.log(link) })
.catch(function (err) { console.log(err) })

/* Decrypt */
new Transfer('./Hello.enc', {password: 's3cr3t'})
.decrypt('Output.md') // or writable stream
.then(function (wStream) { console.log('Decrypted!') }) // it returns a writableStream
.catch(function (err) { console.log(err) })

```

**NB.**: The constructor accepts also a `Readable` stream as 1th param, in that case make sure to provide a `name` option.

### Options

`password`: optional field, if provided will encrypt the file with `aes-256-cbc` no-salt and base64 encoded before the upload.

You can then easily decrypt your file using `transfer-sh` itself:

$ transfer -d hello.enc -p s3cr3t [-o output.txt]

or the `openssl` util:

$ openssl aes-256-cbc -d -a -nosalt -in -out -k

openssl params explanation:

`-d` decrypt.

`-a` to decode base64 (with line break). NB. The file is base64 encoded to be easy human-readable and to allow easy copy-paste.

`-nosalt` The used node crypto lib by default doesn't apply any salt.

`-in` input encrypted file.

`-out` output decrypted file.

`-k` password.

## Author

Rocco Musolino ([@roccomuso](https://twitter.com/roccomuso))

## LICENSE

MIT