{"_id":"s3-streams","_rev":"15-f78bcfb22b92dc74e2857d4b49b79ca4","name":"s3-streams","description":"Use readable/writeable streams for manipulating S3 objects.","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"s3-streams","version":"0.1.0","description":"Use readable/writeable streams for manipulating S3 objects.","author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"keywords":["s3","stream","upload","download"],"license":"CC0-1.0","homepage":"https://github.com/izaakschroeder/s3-streams","repository":{"type":"git","url":"https://github.com/izaakschroeder/s3-streams.git"},"main":"lib/s3.js","scripts":{"test":"npm run lint && npm run spec && npm run coverage","spec":"NODE_PATH=lib NODE_ENV=test istanbul cover node_modules/.bin/_mocha -- -r test/helpers/chai -r test/helpers/sinon -R spec test/spec","lint":"eslint --ignore-path .gitignore .","coverage":"istanbul check-coverage --statement 100 --branch 100 --function 100"},"dependencies":{"aws-sdk":"*","lodash":"*"},"devDependencies":{"eslint":"*","eslint-plugin-nodeca":"*","mocha":"*","istanbul":"*","chai":"*","chai-things":"*","chai-as-promised":"*","sinon":"*","sinon-chai":"*"},"engines":{"node":">=0.11"},"bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"_id":"s3-streams@0.1.0","_shasum":"7226b1369a5f42fdd1b45a8d6057063d54dd62a4","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"},"maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"dist":{"shasum":"7226b1369a5f42fdd1b45a8d6057063d54dd62a4","tarball":"https://registry.npmjs.org/s3-streams/-/s3-streams-0.1.0.tgz","integrity":"sha512-z02WYTGqbS9o7eBqTu0KS+5Kg06I1tW+cnfG9JFaQthr4814CGTGz0f60R/aRuUKBOWyvJGPm4P6l077uZzGJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgg0U+V8eZq6mSpxJmJ3bFOAC6h83Phn49nEeXCEqdzAiEAqSUC2PaDoHgCaVb97JL8NG6C0QLaRE6GKtUVw8Xc1Lg="}]},"directories":{}},"0.1.1":{"name":"s3-streams","version":"0.1.1","description":"Use readable/writeable streams for manipulating S3 objects.","author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"keywords":["s3","stream","upload","download"],"license":"CC0-1.0","homepage":"https://github.com/izaakschroeder/s3-streams","repository":{"type":"git","url":"https://github.com/izaakschroeder/s3-streams.git"},"main":"lib/s3.js","scripts":{"test":"npm run lint && npm run spec && npm run coverage","spec":"NODE_PATH=lib NODE_ENV=test istanbul cover node_modules/.bin/_mocha -- -r test/helpers/chai -r test/helpers/sinon -R spec test/spec","lint":"eslint --ignore-path .gitignore .","coverage":"istanbul check-coverage --statement 100 --branch 100 --function 100"},"dependencies":{"lodash":"*"},"peerDependencies":{"aws-sdk":"*"},"devDependencies":{"eslint":"*","eslint-plugin-nodeca":"*","mocha":"*","istanbul":"*","chai":"*","chai-things":"*","chai-as-promised":"*","sinon":"*","sinon-chai":"*"},"engines":{"node":">=0.11"},"bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"_id":"s3-streams@0.1.1","_shasum":"26e55b62e7a94d2238c2cfd3dd53f1d042ce2925","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"},"maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"dist":{"shasum":"26e55b62e7a94d2238c2cfd3dd53f1d042ce2925","tarball":"https://registry.npmjs.org/s3-streams/-/s3-streams-0.1.1.tgz","integrity":"sha512-rCLSzZ171zAluQrBQUaPougH/pxkQuL74diECWuicky//PfHR4NS5W52cYmeklMZ5I0n6MGd7VIUrO7ke1DZ1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClWt+4y/eM0jQzFOzEFLIx/ehZV67wQK9fvfGGI73GCQIhAJrOJzrdCovnvhCWQLs6SyhPhhHLhGI7oEaGwZH5HYxr"}]},"directories":{}},"0.2.0":{"name":"s3-streams","version":"0.2.0","description":"Use readable/writeable streams for manipulating S3 objects.","author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"keywords":["s3","stream","upload","download"],"license":"CC0-1.0","homepage":"https://github.com/izaakschroeder/s3-streams","repository":{"type":"git","url":"https://github.com/izaakschroeder/s3-streams.git"},"main":"lib/s3.js","scripts":{"test":"npm run lint && npm run spec && npm run coverage","spec":"NODE_PATH=lib NODE_ENV=test istanbul cover node_modules/.bin/_mocha -- -r test/helpers/chai -r test/helpers/sinon -R spec test/spec","lint":"eslint --ignore-path .gitignore .","coverage":"istanbul check-coverage --statement 100 --branch 100 --function 100"},"dependencies":{"lodash":"^3.5.0","readable-stream":"^1.1.13","bluebird":"^2.9.14"},"peerDependencies":{"aws-sdk":"^2.1.18"},"devDependencies":{"eslint":"^0.17.1","eslint-plugin-nodeca":"^1.0.3","mocha":"^2.2.1","istanbul":"^0.3.10","chai":"^2.1.2","chai-things":"^0.2.0","chai-as-promised":"^4.3.0","sinon":"^1.14.1","sinon-chai":"^2.7.0"},"engines":{"node":"^0.8 || ^0.10 || ^0.12","iojs":"^1.2.0"},"gitHead":"085dc67d01827876a8741b9f0f79f43aa9b178d1","bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"_id":"s3-streams@0.2.0","_shasum":"e354e9cb0562b97d1f02975f067e333ad57e897c","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"},"maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"dist":{"shasum":"e354e9cb0562b97d1f02975f067e333ad57e897c","tarball":"https://registry.npmjs.org/s3-streams/-/s3-streams-0.2.0.tgz","integrity":"sha512-AWUrB9it8XC2CaQb2ri1NtjckX+HWdM+v1pJdJlC+G9Fjk6Oi0KCNhYFQ6NSYdKZcN+TV2vEotV51mODWYCF8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHlke5NiQRNEWVFLV9UkpWJxXkM//i6kAmX3wqiJWP81AiA0spdVKlc6YxMa3rThMrfzkqfxNylkok2NxEv0ruoHUQ=="}]},"deprecated":"ETag not actually supported by S3.","directories":{}},"0.2.1":{"name":"s3-streams","version":"0.2.1","description":"Use readable/writeable streams for manipulating S3 objects.","author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"keywords":["s3","stream","upload","download"],"license":"CC0-1.0","homepage":"https://github.com/izaakschroeder/s3-streams","repository":{"type":"git","url":"git+https://github.com/izaakschroeder/s3-streams.git"},"main":"lib/s3.js","scripts":{"test":"npm run lint && npm run spec && npm run coverage","spec":"NODE_PATH=lib NODE_ENV=test istanbul cover node_modules/.bin/_mocha -- -r test/helpers/chai -r test/helpers/sinon -R spec test/spec","lint":"eslint --ignore-path .gitignore .","coverage":"istanbul check-coverage --statement 100 --branch 100 --function 100"},"dependencies":{"lodash":"^3.5.0","readable-stream":"^1.1.13","bluebird":"^2.9.14"},"peerDependencies":{"aws-sdk":"^2.1.18"},"devDependencies":{"eslint":"^0.17.1","eslint-plugin-nodeca":"^1.0.3","mocha":"^2.2.1","istanbul":"^0.3.10","chai":"^2.1.2","chai-things":"^0.2.0","chai-as-promised":"^4.3.0","sinon":"^1.14.1","sinon-chai":"^2.7.0"},"engines":{"node":"^0.8 || ^0.10 || ^0.12","iojs":"^1.2.0"},"gitHead":"e71a4858d5463d1d06ac5068b86c12b798489047","bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"_id":"s3-streams@0.2.1","_shasum":"a79e39f8685614718479ef67c44be5315a9a4124","_from":".","_npmVersion":"2.10.1","_nodeVersion":"2.1.0","_npmUser":{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"},"maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"dist":{"shasum":"a79e39f8685614718479ef67c44be5315a9a4124","tarball":"https://registry.npmjs.org/s3-streams/-/s3-streams-0.2.1.tgz","integrity":"sha512-MFqfnlH9SSxOVbvb7QPfM1y5ZF7QyV+wW3QRYzNzo12fxe2sYmnKslUVmmZjOycri6qDWz/BAmYhm727qfcTdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHb8vu+amh4JVbKeUyj2LptotO3OKd3iMTKiYsnklDAYAiAX5Xvksm/AKIdFLnNVuGpKJW69uAk3gnn9VxVbBg2xeA=="}]},"directories":{}},"0.3.0":{"name":"s3-streams","version":"0.3.0","description":"Use readable/writeable streams for manipulating S3 objects.","author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"keywords":["s3","stream","upload","download"],"license":"CC0-1.0","homepage":"https://github.com/izaakschroeder/s3-streams","repository":{"type":"git","url":"git+https://github.com/izaakschroeder/s3-streams.git"},"main":"lib/s3.js","scripts":{"test":"npm run lint && npm run spec && npm run coverage","spec":"NODE_PATH=lib NODE_ENV=test istanbul cover node_modules/.bin/_mocha -- -r test/helpers/chai -r test/helpers/sinon -R spec test/spec","lint":"eslint --ignore-path .gitignore .","coverage":"istanbul check-coverage --statement 100 --branch 100 --function 100"},"dependencies":{"lodash":"^3.9.3","readable-stream":"^2.0.0","bluebird":"^2.9.27"},"peerDependencies":{"aws-sdk":"^2.1.34"},"devDependencies":{"eslint":"^0.22.1","mocha":"^2.2.5","istanbul":"^0.3.15","chai":"^2.3.0","chai-things":"^0.2.0","chai-as-promised":"^4.3.0","sinon":"^1.15.3","sinon-chai":"^2.8.0"},"engines":{"node":"^0.8 || ^0.10 || ^0.12","iojs":"^1.2.0"},"gitHead":"3cb92405138ee979e5a0eba3f241eca094d16694","bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"_id":"s3-streams@0.3.0","_shasum":"63f031ebe15183f09f76564c616f1c09cecf3050","_from":".","_npmVersion":"2.10.1","_nodeVersion":"2.1.0","_npmUser":{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"},"maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"dist":{"shasum":"63f031ebe15183f09f76564c616f1c09cecf3050","tarball":"https://registry.npmjs.org/s3-streams/-/s3-streams-0.3.0.tgz","integrity":"sha512-8nt1dGS70fCnxIv2jcxHG8gf4eJZmYQ/JEfER2w1iSXB/Yh9aCtN6ewGsp0K4F7g5A2MYzK0piX+sv7PatQDWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB+IieYvf1QlVjnlRs8/mYpRq1IW7miIC9pWqCiOOnp/AiEA4aD5lD5H9K0LkjFkzT/1MwKX2iDl49DoHO4Zdv/zgQ4="}]},"directories":{}},"0.4.0":{"name":"s3-streams","version":"0.4.0","description":"Use readable/writeable streams for manipulating S3 objects.","author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"keywords":["s3","stream","upload","download"],"license":"CC0-1.0","homepage":"https://github.com/izaakschroeder/s3-streams","repository":{"type":"git","url":"git+https://github.com/izaakschroeder/s3-streams.git"},"main":"lib/s3.js","scripts":{"test":"npm run lint && npm run spec && npm run coverage","spec":"NODE_PATH=lib NODE_ENV=test istanbul cover node_modules/.bin/_mocha -- -r test/helpers/chai -r test/helpers/sinon -R spec test/spec","lint":"eslint --ignore-path .gitignore .","coverage":"istanbul check-coverage --statement 100 --branch 100 --function 100"},"dependencies":{"lodash":"^4.17.11","readable-stream":"^3.1.1","bluebird":"^3.5.3"},"peerDependencies":{"aws-sdk":"^2.1.34"},"devDependencies":{"eslint":"^5.11.1","mocha":"^5.2.0","istanbul":"^0.4.5","chai":"^4.2.0","chai-things":"^0.2.0","chai-as-promised":"^7.1.1","sinon":"^7.2.2","sinon-chai":"^3.3.0"},"engines":{"node":"^0.8 || ^0.10 || ^0.12","iojs":"^1.2.0"},"gitHead":"092e6028607a3c25fc8cf963b97a6e44b72c1982","bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"_id":"s3-streams@0.4.0","_npmVersion":"6.1.0","_nodeVersion":"10.4.1","_npmUser":{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"},"dist":{"integrity":"sha512-DtZ7w3A0EorzHdhh00U3p7O2c2hv2w/i+A1JATAJZubp+fnwlU8MiejJibAzMLhhCRv+UsfimSGoivWt2Y4JsQ==","shasum":"c67d2679fb73644c35da284bc0749c0b7b58ca66","tarball":"https://registry.npmjs.org/s3-streams/-/s3-streams-0.4.0.tgz","fileCount":18,"unpackedSize":36561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNULmCRA9TVsSAnZWagAAhO4QAKFcJl02fDdMpbyBxpUL\nUlgv2psQMl2WQpwr23a7PhA4yQMpZJPdktxfanQm+ZAZ03Ng+QJpaEpoTUJH\nEHaOKQiAB0s7UkCy7iUJNYxhY53cZbP+ORVhnoaNz9ET6pi2oamHIPq5xbmH\nMi80n5WY3ZZiB2i35Twrh8oP+iX/WH0IEMJW+1dIZyuyoQer802RyNrnKRk4\n8utXubcjFsDXSbHdZJvBfMPxsu4N/enxS2PQXdrco/d95RpGwCGd5LC400YH\nK4FJdfoZ5R3fmWavBQHEhU8usLKjqVbpOOGxK8pKYWB1UQU5egPCHERQhv74\nBM8V56ITobpc1dXwkrbGoQXhhA+ZL4MAj2kvDMVZSNCgFi4BcT7ZllS23/P+\nSIQ8+Au91ZXXiQ11chZOBK1kYSsYanlukYtrBLsjfAaJ5k49PwLkH+LAnMYf\nsoTOrImNGX4QHK22hFH2P7Jb61k1opiWg5FT3FB/yztNTVotKkCwTehbzlq9\nGZkJ6Wz7goz4ZntfqA0d6WFAQYDYLF8JQDzsfGNo3rqpTU/BmqGWgWdJ8xpM\nnqOfwY0465mvuPByG5r6vbvIJ3SNF75ehDeh9SpQoj6TfVbdNoZyrmdShm7l\nyi23uJW6pyz1nO0Oxgz1vN0s0fUjs3Q1fFQhPB/o+/l8OKJQvOKJgs0FPPc4\nIbLr\r\n=BRIB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIACjwPYWRxLbOTz/+V4EcyNtFPAm6dIedVoz45RjfzWMAiEA3Pt6RxzCbwKw/Mm5M1mYFHdWJ1eMOiI5iEMkdSqCv/s="}]},"maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/s3-streams_0.4.0_1546994405304_0.9317794620779012"},"_hasShrinkwrap":false}},"readme":"# s3-streams\n\nSupport for streaming reads and writes from and to S3 using Amazon's native API.\n\n![build status](http://img.shields.io/travis/izaakschroeder/s3-streams/master.svg?style=flat)\n![coverage](http://img.shields.io/coveralls/izaakschroeder/s3-streams/master.svg?style=flat)\n![license](http://img.shields.io/npm/l/s3-streams.svg?style=flat)\n![version](http://img.shields.io/npm/v/s3-streams.svg?style=flat)\n![downloads](http://img.shields.io/npm/dm/s3-streams.svg?style=flat)\n\nAmazon makes it a giant pain to do anything stream-like when it comes to S3 (given the general restriction that every request needs a `Content-Length` header). We provide native stream classes (both `Readable` and `Writable`) that wrap `aws-sdk` S3 requests and responses to make your life easier.\n\nIMPORTANT: This library uses the `streams3` API. In order to provide compatibility with older versions of node we make use of [readable-stream]. This is unlikely to have any effect on your code but has not yet been well tested.\n\nIf you are using `node 0.8` you must ensure your version of `npm` is at least `1.4.6`.\n\nFeatures:\n * Native read streams,\n * Native write streams,\n * Smart piping.\n\n## Usage\n\n```sh\nnpm install s3-streams\n```\n\n### Write Streams\n\nCreate streams for uploading to S3:\n```javascript\nvar S3 = require('aws-sdk').S3,\n\tS3S = require('s3-streams');\n\nvar upload = S3S.WriteStream(new S3(), {\n\tBucket: 'my-bucket',\n\tKey: 'my-key',\n\t// Any other AWS SDK options\n\t// ContentType: 'application/json'\n\t// Expires: new Date('2099-01-01')\n\t// ...\n});\n```\n\n### Read Streams\n\nCreate streams for downloading from S3:\n```javascript\nvar S3 = require('aws-sdk').S3,\n\tS3S = require('s3-streams');\n\nvar download = S3S.ReadStream(new S3(), {\n\tBucket: 'my-bucket',\n\tKey: 'my-key',\n\t// Any other AWS SDK options\n});\n```\n\n### Smart Piping\n\nSmart pipe files over HTTP:\n\n```javascript\nvar http = require('http'),\n    S3 = require('aws-sdk').S3,\n\tS3S = require('s3-streams');\n\nhttp.createServer(function(req, res) {\n    var src = S3S.ReadStream(...);\n    // Automatically sets the correct HTTP headers\n    src.pipe(res);\n})\n```\n\nSmart pipe files on S3:\n```javascript\nvar S3 = require('aws-sdk').S3,\n\tS3S = require('s3-streams');\n\nvar src = S3S.ReadStream(...),\n\tdst = S3S.WriteStream(...);\n\n// No data ever gets downloaded locally.\nsrc.pipe(dst);\n```\n\n### Extras\n\nYou can create streams with different settings by creating a partial for the specific S3 instance you have:\n\n```javascript\nvar instance = new S3(), s3 = {\n\tcreateReadStream: _.partial(S3ReadStream, instance),\n\tcreateWriteStream: _.partial(S3WriteStream, instance)\n}\n\nvar stream = s3.createReadStream({ Bucket: 'my-bucket', Key: 'my-key' });\n```\n\nExisting frameworks:\n * knox (doesn't use native AWS SDK, no true streaming support)\n * s3-upload-stream (doesn't use node streams API, no support for streaming downloads)\n * s3-download-stream (only does downloads, downloads are streamed by S3 part, not by individual buffer chunks)\n * streaming-s3 (overall terrible API; no actual streams)\n * create-s3-object-write-stream (probably one of the better ones)\n\n[readable-stream]: http://www.nearform.com/nodecrunch/dont-use-nodes-core-stream-module/\n","maintainers":[{"name":"izaakschroeder","email":"izaak.schroeder@gmail.com"}],"time":{"modified":"2022-06-26T15:12:39.555Z","created":"2014-10-28T09:30:52.146Z","0.1.0":"2014-10-28T09:30:52.146Z","0.1.1":"2014-10-29T01:04:39.313Z","0.2.0":"2015-03-24T01:25:40.937Z","0.2.1":"2015-06-08T22:22:26.204Z","0.3.0":"2015-06-17T06:10:22.546Z","0.4.0":"2019-01-09T00:40:05.446Z"},"homepage":"https://github.com/izaakschroeder/s3-streams","keywords":["s3","stream","upload","download"],"repository":{"type":"git","url":"git+https://github.com/izaakschroeder/s3-streams.git"},"author":{"name":"Izaak Schroeder","email":"izaak.schroeder@gmail.com"},"bugs":{"url":"https://github.com/izaakschroeder/s3-streams/issues"},"license":"CC0-1.0","readmeFilename":"README.md","users":{"ngpvnk":true,"veegee":true}}