https://github.com/tradingview/s3-groundskeeper
https://github.com/tradingview/s3-groundskeeper
amazon-s3 aws-s3 s3 s3-storage s3-sync
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tradingview/s3-groundskeeper
- Owner: tradingview
- License: mit
- Created: 2021-01-21T15:34:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-15T13:08:12.000Z (over 2 years ago)
- Last Synced: 2025-04-18T06:54:16.409Z (about 1 year ago)
- Topics: amazon-s3, aws-s3, s3, s3-storage, s3-sync
- Language: TypeScript
- Homepage:
- Size: 232 KB
- Stars: 7
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# S3 Grounds Keeper
One way synchronization local directory content with Amazon S3 bucket.
## Setup, develop, build
### npm
setup: `npm i`
start develop: `npm run build`
### yarn
setup `yarn`
start develop: `yarn build`
## CLI
|--arg |-short | required | description |
|-------------------------------|----------|----------|--------------------------|
|--src=path | -s=path |* | path to source (sync out) directory |
|--s3-region=name | |* | S3 Bucket's region |
|--s3-endpoint=url | | | S3 Endpoint URL |
|--s3-key=key | |* | S3 Access Key |
|--s3-seckey=key | |* | S3 Secret Access Key |
|--s3-bucket=name | -b=name |* | S3 destination (sync in) bucket name (**NOT ARN**, just a name) |
|--artifactory-url=url | |* | jfrog Artifactory base url |
|--artifactory-user=username | |* | jfrog Artifactory user |
|--artifactory-password=password| | | jfrog Artifactory user's password |
|--artifactory-apikey=jfapikey | | | jfrog Artifactory user's Api key |
|--dry-run | -n | | Dry run: do nothing only prints what to do. |
|--show-conf | | | Print json object for the used configuration. |
### jFrog notes
Currently 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.
### S3 notes
Access to s3 bucket provided through **AWS SDK/Client S3 Api**.
There is required parameters to configure access to S3 resources:
* region;
* access key / secret access key;
* target bucket's name;
## Metapointer file format.
> **#metapointer** *PROVIDERNAME*
> **oid** *provider_secific_data*
Providers:
|Provider |Data | Sample |
|-----------|------------------------------------------|----------------------------------------|
|jfrogart | **oid** aql_request_field:field_value |oid md5:e26a6019c8da5d9a3e6f742c0c6cc02c|
Sample for jfrogart
> **#metapointer** *jfrogart*
> **oid** *md5:e26a6019c8da5d9a3e6f742c0c6cc02c*
or
> **#metapointer** *jfrogart*
> **oid** *name:myfilename.txt*
## Publish a new release
1. Make an annotated git tag using `git tag -a ` or `git tag -s `, if signed tag is preferred.
1. Checkout the tag, cleanup the working tree.
1. Install the dependencies: `npm ci`.
1. Build the package: `npm run build -- --version `.
1. Create the tarball: `npm pack ./dist`, check the tarball contents.
1. Publish the tarball: `npm publish `.