# zappy-sync
[Zappy](https://zapier.com/zappy) is a neat little utility for quick capturing screenshots, GIFs,
and videos.
Files are stored locally. If you have a Zapier Premium account, they are also hosted in Zapier.
`zappy-sync` is a little utility to sync your local files to your own cloud storage. This currently
only supports Google Cloud Storage, but can be extended.
# Installation
```
pipx install zappy-sync
```
# Configuration
## GCP
GCP configuration is quite intense and not for the faint hearted. You need to do the following:
1. Setup a service account. Go to IAM -> Service Accounts, set it up.
2. Setup a bucket where you want your files shared. Go to Storage -> Browser, create a bucket.
3. Change the `defacl` on this bucket to be public by default. You can do this via the `gsutil` CLI.
`gsutil defacl set public-read gs://your-bucket-name`
4. Create a JSON key for your service account. Go to IAM -> Service Accounts, click on your service
account, click on "Add Key", select JSON. Download this key and save it somewhere safe. Recommend
`~/.zappy/gcp.json`.
## Settings
You can run the whole thing with command line options but having a settings file will make things
easier. Store the settings file in `~/.zappy/settings.toml`. Here's my settings file:
```toml
directory = "~/Pictures/Zappy/"
[storage]
provider = "gcp" # for now, only gcp is supported
[gcp]
project = "my-project-name"
bucket = "zappy"
credentials = "~/.zappy/gcpkey.json"
```
## Usage
Pretty straight forward. Run `zappy-sync` and it will watch the directory you specified in the
settings file. Any new files will be uploaded to your cloud storage. Deletions are not synced.
```
Usage: zappy-sync [OPTIONS]
Options:
--directory TEXT Directory to watch.
--bucket TEXT GCP Storage Bucket.
--project TEXT GCP Project ID.
--upload-missing Upload missing files.
--credentials TEXT GCP Service account credentials.
--provider TEXT Storage provider. Only gcp for now.
-n, --dry-run Dry run.
--help Show this message and exit.
```
Raw data
{
"_id": null,
"home_page": "https://github.com/radoshi/zappy-sync",
"name": "zappy-sync",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Rushabh Doshi",
"author_email": "radoshi+pypi@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/fe/7e/b8f66c49b231ec99b4246c45b25364d9a0f418e19135f44f5895eb50ac16/zappy_sync-0.6.0.tar.gz",
"platform": null,
"description": "# zappy-sync\n\n[Zappy](https://zapier.com/zappy) is a neat little utility for quick capturing screenshots, GIFs,\nand videos.\n\nFiles are stored locally. If you have a Zapier Premium account, they are also hosted in Zapier.\n\n`zappy-sync` is a little utility to sync your local files to your own cloud storage. This currently\nonly supports Google Cloud Storage, but can be extended.\n\n# Installation\n\n```\npipx install zappy-sync\n```\n\n# Configuration\n\n## GCP\n\nGCP configuration is quite intense and not for the faint hearted. You need to do the following:\n\n1. Setup a service account. Go to IAM -> Service Accounts, set it up.\n2. Setup a bucket where you want your files shared. Go to Storage -> Browser, create a bucket.\n3. Change the `defacl` on this bucket to be public by default. You can do this via the `gsutil` CLI.\n `gsutil defacl set public-read gs://your-bucket-name`\n4. Create a JSON key for your service account. Go to IAM -> Service Accounts, click on your service\n account, click on \"Add Key\", select JSON. Download this key and save it somewhere safe. Recommend\n `~/.zappy/gcp.json`.\n\n## Settings\n\nYou can run the whole thing with command line options but having a settings file will make things\neasier. Store the settings file in `~/.zappy/settings.toml`. Here's my settings file:\n\n```toml\ndirectory = \"~/Pictures/Zappy/\"\n\n[storage]\nprovider = \"gcp\" # for now, only gcp is supported\n\n[gcp]\nproject = \"my-project-name\"\nbucket = \"zappy\"\ncredentials = \"~/.zappy/gcpkey.json\"\n```\n\n## Usage\n\nPretty straight forward. Run `zappy-sync` and it will watch the directory you specified in the\nsettings file. Any new files will be uploaded to your cloud storage. Deletions are not synced.\n\n```\nUsage: zappy-sync [OPTIONS]\n\nOptions:\n --directory TEXT Directory to watch.\n --bucket TEXT GCP Storage Bucket.\n --project TEXT GCP Project ID.\n --upload-missing Upload missing files.\n --credentials TEXT GCP Service account credentials.\n --provider TEXT Storage provider. Only gcp for now.\n -n, --dry-run Dry run.\n --help Show this message and exit.\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Little utility to rsync local zappy files to cloud storage",
"version": "0.6.0",
"project_urls": {
"Homepage": "https://github.com/radoshi/zappy-sync",
"Repository": "https://github.com/radoshi/zappy-sync"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d26d255a46306413924980d052b16f8bc071113d60c6b5f31334b9c5af7b6abb",
"md5": "7c7444d58b38f0b1d95f4a5ee5424d6e",
"sha256": "5a3b5917d5102c0143f8209bca3bdc1e1167302100d580ceb62b845d4fc16e58"
},
"downloads": -1,
"filename": "zappy_sync-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7c7444d58b38f0b1d95f4a5ee5424d6e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4.0",
"size": 4964,
"upload_time": "2023-10-19T17:49:50",
"upload_time_iso_8601": "2023-10-19T17:49:50.245096Z",
"url": "https://files.pythonhosted.org/packages/d2/6d/255a46306413924980d052b16f8bc071113d60c6b5f31334b9c5af7b6abb/zappy_sync-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fe7eb8f66c49b231ec99b4246c45b25364d9a0f418e19135f44f5895eb50ac16",
"md5": "2b02b14102250c201aad3c1288092803",
"sha256": "6e34aaf91ed4f92f03dd43d483f5979cde9741b257efb261953079653cbcd004"
},
"downloads": -1,
"filename": "zappy_sync-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "2b02b14102250c201aad3c1288092803",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4.0",
"size": 4066,
"upload_time": "2023-10-19T17:49:51",
"upload_time_iso_8601": "2023-10-19T17:49:51.818756Z",
"url": "https://files.pythonhosted.org/packages/fe/7e/b8f66c49b231ec99b4246c45b25364d9a0f418e19135f44f5895eb50ac16/zappy_sync-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-19 17:49:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "radoshi",
"github_project": "zappy-sync",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "zappy-sync"
}