Metadata-Version: 2.1
Name: s3sync
Version: 0.1.1
Summary: Sync s3 from one source to another place
License: MIT
Author: Ferdina Kusumah
Author-email: ferdina.kusumah@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: boto3 (>=1.34.14,<2.0.0)
Requires-Dist: pydantic (>=2.5.3,<3.0.0)
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
Description-Content-Type: text/markdown

# s3-sync

Sync AWS S3 storage:
* Sync file from s3 -> s3
* Sync file from s3 -> local storage
* Sync file from local storage -> s3

## Installation
```shell
  pip install s3sync
```

## S3 sync s3 to s3

### Read from parameters
```shell
    s3-sync --sync-s3-bucket true \
        # using 5 concurrent thread default is 2
        --thread 5 \
        --source-bucket-name source-bucket \
        --source-region-name ap-southeast-1 \
        --source-access-key-id source-access-key \
        --source-secret-access source-secret \
        
        --target-bucket-name target-bucket \
        --target-region-name ap-southeast-3 \
        --target-access-key-id target-access-key \
        --target-secret-access target-secret
```

### Read from json file
* Create example json file as bellow example, you can name this file whatever

```json
{
  "source": {
    "bucket_name": "source-bucket",
    "region_name": "ap-southeast-1",
    "access_key_id": "source-access-key",
    "secret_access_key": "source-secret-key"
  },
  "target": {
    "bucket_name": "target-bucket",
    "region_name": "ap-southeast-3",
    "access_key_id": "target-access-key",
    "secret_access_key": "target-secret-key"
  }
}

```

* Then execute command `s3-sync --sync-s3-bucket true -json /home/ubuntu/config.json --thread 5`

---

## S3 sync s3 to local (*Give absolute path for this*)
### Read from parameters
```shell
    s3-sync --sync-s3-local true \
        # using 5 concurrent thread default is 2
        --thread 5 \
        --source-bucket-name source-bucket \
        --source-region-name ap-southeast-1 \
        --source-access-key-id source-access-key \
        --source-secret-access source-secret-key \
        --target-local-path /home/ubuntu/sync-s3/my-folder
```

### Read from json file
* Create example json file as bellow example, you can name this file whatever

```json
{
  "source": {
    "bucket_name": "source-bucket",
    "region_name": "ap-southeast-1",
    "access_key_id": "source-access-key",
    "secret_access_key": "source-secret-key"
  },
  "target": {
    "path": "/home/ubuntu/sync-s3/my-folder"
  }
}

```

* Then execute command `s3-sync --sync-s3-local true -json /home/ubuntu/config.json --thread 5`

---

## S3 sync local to s3

### Read from parameters
```shell
    s3-sync --sync-local-s3 true \
        # using 5 concurrent thread default is 2
        --thread 5 \
        --source-local-path /home/ubuntu/sync-s3/my-folder \
        --target-bucket-name target-bucket \
        --target-region-name ap-southeast-3 \
        --target-access-key-id target-access-key \
        --target-secret-access target-secret-key
```

### Read from json file
* Create example json file as bellow example, you can name this file whatever

```json
{
  "source": {
    "path": "/home/ubuntu/sync-s3/my-folder"
  },
  "target": {
    "bucket_name": "target-bucket-name",
    "region_name": "ap-southeast-3",
    "access_key_id": "target-access-key",
    "secret_access_key": "target-secret-key"
  }
}

```

* Then execute command `s3-sync --sync-local-s3 true -json /home/ubuntu/config.json --thread 5`

---

## Help & Bugs

[![contributions welcome](https://img.shields.io/badge/contributions-welcome-blue.svg)](https://github.com/FerdinaKusumah/s3-sync/issues)

If you are still confused or found a bug,
please [open the issue](https://github.com/FerdinaKusumah/s3-sync/issues). All bug reports are appreciated, some
features have not been tested yet due to lack of free time.

## License

[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

**s3-sync** released under MIT. See `LICENSE` for more details.


