# uploadenc

> Writes uploaded files directly to Amazon S3, encrypting them to a given public key in the process. Secure uploads without having to worry about having private keys on the server!

Latest version **1.0.0** (published 2017-10-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install uploadenc
pnpm add uploadenc
yarn add uploadenc
bun add uploadenc
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2017-10-09 |
| First published | 2017-10-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 5 |
| Author | Denis Petrusenko |
| Maintainers | dents |
| Keywords | https, upload, s3, encryption, rsa, public, key |

## Links

- npm: https://www.npmjs.com/package/uploadenc
- Repository: https://github.com/dents/uploadenc
- Homepage: https://github.com/dents/uploadenc#readme
- Issues: https://github.com/dents/uploadenc/issues
- npm.io page: https://npm.io/package/uploadenc

## Dependencies (2)

- [moment](https://npm.io/package/moment.md) ^2.18.1
- [aws-sdk](https://npm.io/package/aws-sdk.md) ^2.130.0

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2017-10-09

## README

# uploadenc
Writes client-uploaded files directly to Amazon S3, encrypting them to a given public key in the process. Works great for securely sending yourself personal pictures from your phone, for example.

Overview:

* Uses node's https module to listen on given port (default 443)
* By default serves index.html with a simple html form containing an upload input that accepts multiple files
* When client clicks upload, data is encrypted on the fly and sent to a configured S3 bucket (using [AWS credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html))

Needs a 1024+ bit RSA public key and working SSL certs to function.
To create RSA keys:

>openssl genrsa -out private.pem 4096

>openssl rsa -in private.pem -pubout > key.pub

__private.pem__ is to be kept in a secure place, preferrably completely offline. *Do not keep private.pem anywhere on the server.* __key.pub__ does need to be on the server, alongside this code.



Needs at least Node v6.11 to work properly. Works fine on a Raspberry Pi, even with multi-GB file uploads.

---
_Source: https://npm.io/package/uploadenc · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
