{"id":19168784,"url":"https://github.com/tradingview/s3-groundskeeper","last_synced_at":"2026-03-16T16:07:56.388Z","repository":{"id":45878684,"uuid":"331671700","full_name":"tradingview/s3-groundskeeper","owner":"tradingview","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-15T13:08:12.000Z","size":238,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-18T06:54:16.409Z","etag":null,"topics":["amazon-s3","aws-s3","s3","s3-storage","s3-sync"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/tradingview.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2021-01-21T15:34:35.000Z","updated_at":"2024-11-25T13:27:20.000Z","dependencies_parsed_at":"2024-02-15T14:28:38.215Z","dependency_job_id":null,"html_url":"https://github.com/tradingview/s3-groundskeeper","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingview%2Fs3-groundskeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingview%2Fs3-groundskeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingview%2Fs3-groundskeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingview%2Fs3-groundskeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tradingview","download_url":"https://codeload.github.com/tradingview/s3-groundskeeper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252897605,"owners_count":21821478,"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":["amazon-s3","aws-s3","s3","s3-storage","s3-sync"],"created_at":"2024-11-09T09:43:47.893Z","updated_at":"2026-03-16T16:07:56.328Z","avatar_url":"https://github.com/tradingview.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# S3 Grounds Keeper\r\n\r\nOne way synchronization local directory content with Amazon S3 bucket.\r\n\r\n\r\n\r\n## Setup, develop, build\r\n### npm\r\nsetup: `npm i`\r\nstart develop: `npm run build`\r\n\r\n### yarn\r\nsetup `yarn`\r\nstart develop: `yarn build`\r\n\r\n\r\n## CLI\r\n\r\n|--arg                          |-short    | required | description              |\r\n|-------------------------------|----------|----------|--------------------------|\r\n|--src=path                     | -s=path  |*         | path to source (sync out) directory |\r\n|--s3-region=name               |          |*         | S3 Bucket's region       |\r\n|--s3-endpoint=url              |          |          | S3 Endpoint URL          |\r\n|--s3-key=key                   |          |*         | S3 Access Key            |\r\n|--s3-seckey=key                |          |*         | S3 Secret Access Key            |\r\n|--s3-bucket=name               | -b=name  |*         | S3 destination (sync in) bucket name (**NOT ARN**, just a name)   |\r\n|--artifactory-url=url          |          |*         | jfrog Artifactory base url |\r\n|--artifactory-user=username    |          |*         | jfrog Artifactory user |\r\n|--artifactory-password=password|          |          | jfrog Artifactory user's password |\r\n|--artifactory-apikey=jfapikey  |          |          | jfrog Artifactory user's Api key |\r\n|--dry-run                      | -n       |          | Dry run: do nothing only prints what to do. |\r\n|--show-conf                    |          |          | Print json object for the used configuration. |\r\n\r\n### jFrog notes\r\n\r\nCurrently supported [Basic authentication using your username and API Key](https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-Authentication): user name and Api key must be provided. Each request will use **Authorization** (http header) = base64('Basic jfuser:jfapikey'). Instead of api key password also can be used.\r\n\r\n### S3 notes\r\n\r\nAccess to s3 bucket provided through **AWS SDK/Client S3 Api**.\r\nThere is required parameters to configure access to S3 resources:\r\n* region;\r\n* access key / secret access key;\r\n* target bucket's name;\r\n\r\n\r\n## Metapointer file format.\r\n\r\n\u003e **#metapointer** *PROVIDERNAME*\r\n\u003e **oid** *provider_secific_data*\r\n\r\nProviders:\r\n\r\n|Provider   |Data                                      | Sample                                 |\r\n|-----------|------------------------------------------|----------------------------------------|\r\n|jfrogart   | **oid** aql_request_field:field_value    |oid md5:e26a6019c8da5d9a3e6f742c0c6cc02c|\r\n\r\nSample for jfrogart\r\n\r\n\u003e **#metapointer** *jfrogart*\r\n\u003e **oid** *md5:e26a6019c8da5d9a3e6f742c0c6cc02c*\r\n\r\nor\r\n\r\n\u003e **#metapointer** *jfrogart*\r\n\u003e **oid** *name:myfilename.txt*\r\n\r\n## Publish a new release\r\n1. Make an annotated git tag using `git tag -a \u003cversion\u003e` or `git tag -s \u003cversion\u003e`, if signed tag is preferred.\r\n1. Checkout the tag, cleanup the working tree.\r\n1. Install the dependencies: `npm ci`.\r\n1. Build the package: `npm run build -- --version \u003cversion\u003e`.\r\n1. Create the tarball: `npm pack ./dist`, check the tarball contents.\r\n1. Publish the tarball: `npm publish \u003cpath-to-tgz\u003e`.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradingview%2Fs3-groundskeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftradingview%2Fs3-groundskeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradingview%2Fs3-groundskeeper/lists"}