https://github.com/lirantal/aws-s3-utils
Node.js library providing high-level wrapper for convenient AWS S3 capabilities
https://github.com/lirantal/aws-s3-utils
amazon-web-services aws aws-s3 nodejs npm-package
Last synced: about 1 month ago
JSON representation
Node.js library providing high-level wrapper for convenient AWS S3 capabilities
- Host: GitHub
- URL: https://github.com/lirantal/aws-s3-utils
- Owner: lirantal
- License: mit
- Created: 2017-05-22T20:39:06.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-04-24T23:24:45.000Z (almost 2 years ago)
- Last Synced: 2025-02-26T18:13:28.795Z (about 2 months ago)
- Topics: amazon-web-services, aws, aws-s3, nodejs, npm-package
- Language: JavaScript
- Homepage:
- Size: 176 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aws-s3-utils
Node.js library providing high-level promise-based wrapper for convenient AWS S3 capabilities such as downloading an S3 object as a string or directly to a file.
[](https://travis-ci.org/lirantal/aws-s3-utils) [](https://codecov.io/gh/lirantal/aws-s3-utils)
## Installation
```bash
yarn add aws-s3-utils
```## Usage
### Download to String
Downloading an S3 object to a string is implementing streams behind the scenes, and works as simple as defining a Map for the options and invoking the `downloadToString` promise:
```js
const awsS3Util = require('aws-s3-utils')const params = new Map()
params.set('config', { credentials: { accessKeyId: 'id', secretAccessKey: 'key' } })
params.set('object', { Bucket: 'somebucket', Key: 'filename' })awsS3Util.downloadToString(params)
.then((s3Contents) => {
console.log(`downloaded s3 object content is: ${s3Contents}`)
})
```You can also pass a key that sets a character byte limit on the length of the string:
```js
params.set('maxSize', 2)
```### Download to File
Downloading an S3 object to a file is also implemented using streams and works by invoking the `downloadToFile` promise.
The `downloadToFile` supports the following `download` settings on the provided Map options:
* If `tempDirectory` is specified then the library will create a unique temporary directory inside the `tempDirectory` directory and download the file there.
* If `destFile` is specified then the downloaded file wil be named using this filename.
* If `destDirectory` is specified then the downloaded file will be placed directly inside this directory without creating any upper level unique directory. If both this option and `tempDirectory` are specified then this option takes precedence.```js
const awsS3Util = require('aws-s3-utils')const params = new Map()
params.set('config', { credentials: { accessKeyId: 'id', secretAccessKey: 'key' } })
params.set('object', { Bucket: 'somebucket', Key: 'filename' })
params.set('download', { tempDirectory: '/tmp' })awsS3Util.downloadToFile(params)
.then((filepath) => {
console.log(`downloaded s3 object content is: ${s3Contents}`)
})
```## Tests
Project tests:
```bash
yarn test
```Project linting:
```bash
yarn lint
yarn lint:fix
```## View Coverage
```bash
yarn coverage:view
```