{"id":18812565,"url":"https://github.com/jsreport/jsreport-fs-store-aws-s3-persistence","last_synced_at":"2025-04-13T21:25:33.163Z","repository":{"id":57286275,"uuid":"111238602","full_name":"jsreport/jsreport-fs-store-aws-s3-persistence","owner":"jsreport","description":"Make jsreport fs store persisting entities to aws s3","archived":false,"fork":false,"pushed_at":"2021-11-08T20:30:28.000Z","size":144,"stargazers_count":5,"open_issues_count":1,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-27T11:43:36.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/jsreport.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}},"created_at":"2017-11-18T20:54:38.000Z","updated_at":"2024-09-10T06:03:27.000Z","dependencies_parsed_at":"2022-09-10T01:01:45.437Z","dependency_job_id":null,"html_url":"https://github.com/jsreport/jsreport-fs-store-aws-s3-persistence","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsreport%2Fjsreport-fs-store-aws-s3-persistence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsreport%2Fjsreport-fs-store-aws-s3-persistence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsreport%2Fjsreport-fs-store-aws-s3-persistence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsreport%2Fjsreport-fs-store-aws-s3-persistence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsreport","download_url":"https://codeload.github.com/jsreport/jsreport-fs-store-aws-s3-persistence/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248761377,"owners_count":21157546,"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","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":[],"created_at":"2024-11-07T23:34:07.885Z","updated_at":"2025-04-13T21:25:33.141Z","avatar_url":"https://github.com/jsreport.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"**⚠️ This repository has been moved to the monorepo [jsreport/jsreport](https://github.com/jsreport/jsreport)**\n--\n\n# jsreport-fs-store-aws-s3-persistence\n[![NPM Version](http://img.shields.io/npm/v/jsreport-fs-store-aws-s3-persistence.svg?style=flat-square)](https://npmjs.com/package/jsreport-fs-store-aws-s3-persistence)\n[![Build Status](https://travis-ci.org/jsreport/jsreport-fs-store-aws-s3-persistence.png?branch=master)](https://travis-ci.org/jsreport/jsreport-fs-store-aws-s3-persistence)\n\n**Make jsreport [fs store](https://github.com/jsreport/jsreport-fs-store) persisting entities into AWS S3.**\n\n\n## Installation\n\n\u003e npm install jsreport-fs-store\n\u003e npm install jsreport-fs-store-aws-s3-persistence\n\nCreate an IAM user with permissions to S3 and SQS and copy the access key and secret access key.\nCreate a bucket and copy its name. Then alter the jsreport configuration:\n```js\n\"store\": {\n  \"provider\": \"fs\"\n},\n\"extensions\": {\n  \"fs-store\": {\n    \"persistence\": {\n      \"provider\": \"aws-s3\"\n    },\n    // it is typically good idea to increase the compacting flat files interval from 5000\n    // otherwise store does too many locks which can be slow when s3 not in the same datacenter\n    \"compactionInterval\": 20000\n  },\n  \"fs-store-aws-s3-persistence\": {\n    \"bucket\": \"...\",\n    // the rest is otional\n    \"accessKeyId\": \"...\",\n    \"secretAccessKey\": \"...\",\n    \"lock\": {\n      \"queueName\": \"jsreport-lock.fifo\",\n      \"region\": \"us-east-1\",\n      \"enabled\": true,\n      \"attributes\": {}\n    },\n    \"s3Options\": {\n       // additional s3 constructor options\n       \"maxRetries\": 10\n    }\n  }\n}\n```\n\nThis persistence implementation also guarantees consistency for parallel access from multiple instances. This is assured using locking mechanism enabling only single write at once. The locking is implemented trough AWS SQS. The queue is automatically created during the instance startup with attributes specified in the configuration `lock`. You can disable it by setting `false` to `lock.enabled`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsreport%2Fjsreport-fs-store-aws-s3-persistence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsreport%2Fjsreport-fs-store-aws-s3-persistence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsreport%2Fjsreport-fs-store-aws-s3-persistence/lists"}