{"id":18304562,"url":"https://github.com/numtel/s3-range-zip","last_synced_at":"2025-08-18T07:12:24.728Z","repository":{"id":242973492,"uuid":"811121817","full_name":"numtel/s3-range-zip","owner":"numtel","description":"Load individual files from zip files on S3 using range","archived":false,"fork":false,"pushed_at":"2024-06-12T11:31:18.000Z","size":879,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T21:05:31.217Z","etag":null,"topics":["aws","s3","zipfile"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/s3-range-zip","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numtel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-06T01:26:28.000Z","updated_at":"2024-10-31T19:58:26.000Z","dependencies_parsed_at":"2024-11-05T15:44:39.075Z","dependency_job_id":null,"html_url":"https://github.com/numtel/s3-range-zip","commit_stats":null,"previous_names":["numtel/s3-range-zip"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/numtel/s3-range-zip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fs3-range-zip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fs3-range-zip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fs3-range-zip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fs3-range-zip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numtel","download_url":"https://codeload.github.com/numtel/s3-range-zip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fs3-range-zip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270957519,"owners_count":24675171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","s3","zipfile"],"created_at":"2024-11-05T15:29:20.709Z","updated_at":"2025-08-18T07:12:24.703Z","avatar_url":"https://github.com/numtel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# s3-range-zip\n\nLoad individual files from zip files on S3 without downloading the entire zip using range parameters.\n\n## Installation\n\n```\nnpm install s3-range-zip\n```\n\n## Usage\n\n```js\nconst reader = new S3RangeZip();\n\nconst fileList = await reader.fetchFileList('bucket', 'key');\nconsole.log(fileList);\n\nconst file = await reader.downloadFile('bucket', 'key', 'myfile.txt', {encoding: 'utf8'})\nconsole.log(file);\n```\n\n## class S3RangeZip\n\n### constructor(s3Client)\n* `s3UrlFun` `\u003cfunction\u003e` Optionally, pass a function to use a custom URL scheme.\n\n  Default:\n  ```js\n  (bucketName, key) =\u003e `https://${bucketName}.s3.amazonaws.com/${key}`\n  ```\n\n### async fetchFileList(bucketName, key)\n* `bucketName` `\u003cstring\u003e` S3 Bucket name\n* `key` `\u003cstring\u003e` S3 Item key\n\nReturns the list of files in the zip.\n\n### async downloadFile(bucketName, key, fileName, options)\n* `bucketName` `\u003cstring\u003e` S3 Bucket name\n* `key` `\u003cstring\u003e` S3 Item key\n* `fileName` `\u003cstring\u003e` Name of file inside the zip to download and decompress\n* `options` `\u003cobject\u003e` Optional\n\nOption Name | Type | Description\n-----------|-------|----------------\n`encoding` | string | `utf8` to return string instead of default `Uint8Array`\n`onProgress(receivedBytes, totalBytes)` | function | receive updates during download\n\nReturns the decompressed file contents as Uint8Array or string.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtel%2Fs3-range-zip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumtel%2Fs3-range-zip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtel%2Fs3-range-zip/lists"}