{"id":20770793,"url":"https://github.com/codemonauts/s3-bucket-replication","last_synced_at":"2025-12-24T10:13:25.288Z","repository":{"id":82653929,"uuid":"222726598","full_name":"codemonauts/s3-bucket-replication","owner":"codemonauts","description":"Copy every new object from an S3 bucket to one or more other buckets","archived":false,"fork":false,"pushed_at":"2025-07-11T13:09:37.000Z","size":6,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-11T15:43:25.352Z","etag":null,"topics":["aws","lambda","replication","s3"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codemonauts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-11-19T15:20:53.000Z","updated_at":"2025-07-11T13:09:41.000Z","dependencies_parsed_at":"2023-03-14T23:00:44.484Z","dependency_job_id":null,"html_url":"https://github.com/codemonauts/s3-bucket-replication","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codemonauts/s3-bucket-replication","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fs3-bucket-replication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fs3-bucket-replication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fs3-bucket-replication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fs3-bucket-replication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codemonauts","download_url":"https://codeload.github.com/codemonauts/s3-bucket-replication/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codemonauts%2Fs3-bucket-replication/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28000523,"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-12-24T02:00:07.193Z","response_time":83,"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","lambda","replication","s3"],"created_at":"2024-11-17T12:11:58.578Z","updated_at":"2025-12-24T10:13:25.269Z","avatar_url":"https://github.com/codemonauts.png","language":"Python","readme":"# s3-bucket-replication\n\nCopy every new object from an S3 bucket to one or more other buckets\n\n\n## Motivation\n\nS3 offers CRR (Cross Region Replication) or SRR (Same Region Replication) to trigger a copy operation on every new file in a bucket, but it has one limitation which got us:\nWhile you can define multiple rules for e.g. different subfolders, all of the rules has to use the same target bucket.\n\nOur usecase is, that we want to copy every new file into two different\nbuckets (one for backup and one used by our staging system), which is not\npossible with out-of-the-box S3 tools so we used\n[eleven41/aws-lambda-copy-s3-objects](https://github.com/eleven41/aws-lambda-copy-s3-objects)\nfor some years. But because it has been unmaintained for quite a while now and we\nlack the skillset to move the codebase to be compatible with modern NodeJS\nversions, we decidet to rewrite the tool in Python3.\n\n## Installation\n\n  * Create a Lambda function (With the latest Python runtime) and give it proper permissions (See next section)\n  * Add a tag with the name 'TargetBucket' to the bucket you want to use as a source with a whitespace seperated list of target buckets as the value\n  * Add a event for \"All object create events\" on the bucket, which executes the lambda function\n\n## IAM\n\nLambda functions needs the following additional permissions to work:\n  * `s3:GetBucketTagging` and `s3:GetObject` on the source bucket\n  * `s3:PutObject` on all target buckets\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodemonauts%2Fs3-bucket-replication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodemonauts%2Fs3-bucket-replication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodemonauts%2Fs3-bucket-replication/lists"}