zappy-sync


Namezappy-sync JSON
Version 0.6.0 PyPI version JSON
download
home_pagehttps://github.com/radoshi/zappy-sync
SummaryLittle utility to rsync local zappy files to cloud storage
upload_time2023-10-19 17:49:51
maintainer
docs_urlNone
authorRushabh Doshi
requires_python>=3.11,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 3.05322s