# s3-unzip-plus

> Utility for unzipping a compressed (application/zip) file from a S3 bucket's root directory back to the same bucket.

Latest version **0.1.8** (published 2018-12-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install s3-unzip-plus
pnpm add s3-unzip-plus
yarn add s3-unzip-plus
bun add s3-unzip-plus
```

Provides the command `s3-unzip-plus`.

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.8 |
| Published | 2018-12-01 |
| First published | 2018-09-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 32.2 KB |
| Known vulnerabilities | 0 (+4 in 3 direct dependencies) |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Avi Kapuya |
| Maintainers | avikap |
| Keywords | s3, zip, archive, unzip |

## Links

- npm: https://www.npmjs.com/package/s3-unzip-plus
- Repository: https://github.com/akapuya/s3-unzip-plus
- Homepage: https://github.com/akapuya/s3-unzip-plus#readme
- Issues: https://github.com/akapuya/s3-unzip-plus/issues
- npm.io page: https://npm.io/package/s3-unzip-plus

## Dependencies (7)

- [fs](https://npm.io/package/fs.md) 0.0.1-security
- [md5](https://npm.io/package/md5.md) ^2.2.1
- [adm-zip](https://npm.io/package/adm-zip.md) ^0.4.7
- [aws-sdk](https://npm.io/package/aws-sdk.md) ^2.100.0
- [commander](https://npm.io/package/commander.md) ^2.11.0
- [date-time](https://npm.io/package/date-time.md) ^2.1.0
- [mime-types](https://npm.io/package/mime-types.md) ^2.1.16

## Alternatives

- [lodash.startswith](https://npm.io/package/lodash.startswith.md) — 769.7K weekly downloads
- [@tarojs/service](https://npm.io/package/@tarojs/service.md) — 33.9K weekly downloads
- [io.extendreality.tilia.indicators.spatialtargets.unity](https://npm.io/package/io.extendreality.tilia.indicators.spatialtargets.unity.md) — 131 weekly downloads
- [@rtarojs/taro](https://npm.io/package/@rtarojs/taro.md) — 90 weekly downloads
- [node-branch-io](https://npm.io/package/node-branch-io.md) — 50 weekly downloads

## Recent versions

- 0.1.8 (latest) — 2018-12-01
- 0.1.7 — 2018-09-14
- 0.1.6 — 2018-09-14
- 0.1.5 — 2018-09-14
- 0.1.4 — 2018-09-14
- 0.1.3 — 2018-09-14
- 0.1.2 — 2018-09-14
- 0.1.1 — 2018-09-14
- 0.1.0 — 2018-09-14

## README

# S3 Unzip plus #

A simple library to unzip an archive file in a S3 bucket to its root folder.

### Install ###

- To include as library: `npm install s3-unzip-plus`
- To use as a command-line tool: `npm install -g s3-unzip-plus`

### Restrictions ###

- The module only supports the input zip file MIME type of 'application/zip'.

### Command Line Usage ###

`s3-unzip-plus [-dv] <bucket name> <filename>`

#### Required ####

- `<bucket name>` : Bucket name in S3 where the zip file exists
- `<filename>` : Filename (including the .zip extension) of the archive that will be decompressed

#### Options ####

- `<targetBucket>` : the output bucket
- `<targetKey>` : target folder
- `-d, --delete-on-success` : Delete the zip file once the decompression has finished
- `-v, --verbose` : Show the console log messages during runtime

#### Example ####

`s3-unzip-plus -d -v test-bucket-in-s3 Companies.zip`

### Library Usage ###

Include like most libraries:

`var s3Unziplus = require("s3-unzip-plus");`

Run the decompression for the file in the specified bucket:

#### Options ####

~~~~
var s = new s3Unziplus({
    bucket: "test-bucket-in-s3",
    file: "Companies.zip",
    targetBucket: "test-output-bucket",
    targetKey: "test-folder",
    deleteOnSuccess: true,
    verbose: false
  }, function(err, success){
    if (err) console.error(err);
    else console.log(success);
  });
~~~~

### AWS Lambda Usage ###

Create an AWS Lambda function, name it, and zip all files from this package to upload the code (including node_modules). The function defaults to deleting the zip file after it's been decompressed and verbose messages logged to CloudWatch.

#### Configuration ####

##### Basic #####
- Runtime: **Node.js 6.10**
- Handler: **index.handler**
- Role: **(create a custom role with Full S3 Access)**

##### Advanced #####

For a 20MB zip file:
- Memory: **at least 512MB**
- Timeout: **at least 30 sec**

#### Options ####

Test JSON:
~~~~
{
  "event":{
    "Records": [
      {
        "s3": {
          "bucket": {
            "name": "test-bucket-in-s3"
          },
          "object": {
            "key": "Companies.zip"
          }
        }
      }
    ]
  }
}
~~~~

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