gclfs


Namegclfs JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/mjlabe/gclfs
SummaryGit LFS for large files that need cloud storage.
upload_time2023-03-27 23:24:04
maintainer
docs_urlNone
authorMarc LaBelle
requires_python>=3.6, <4
licenseMIT
keywords git lfs cloud storage aws s3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Git Cloud Large File Storage

Git LFS for large files that need cloud storage.

## Setup

### AWS S3

1. [Install AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
2. Create an [S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) and 
[AWS access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html#gs-get-keys).
3. Put the access keys in `~/.aws/credentials` as described [here](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). 
Note, the profile used by gclfs is `gclfs`. This can be overridden in `gclfs.config`. See example below.
4. Add bucket name to `gclfs.config`.

Example credentials file:

```ini
# ~/.aws/credentials
[default]
aws_access_key_id=AKIAASSFODNN7EXAMPLE
aws_secret_access_key=wJalrP0dnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[gclfs]
aws_access_key_id=BTIAIOSFODNN7EXAMPLE
aws_secret_access_key=xyalrXUghdEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

Example config file with overridden profile name:
```ini
# gclfs.config
[s3]
bucket=my-awesome-bucket
profile=default
```

## Usage

### Tracking

To track files with a specific extension that will be uploaded to cloud storage, run `gcl track *.<file_extension>`

For example, to track wav files:

`gcl track "*.wav"`

This adds the extension to `.gitattributes`. When pushing to remote repo, this will sync all wav files to S3.

**Important**: To keep the large files from getting committed to the git repo, you still have to add them to 
`.gitignore`.

### Commands

Your normal git commands work here and a remote git repo should be setup as usual 
(with `git init` and `git remote add`, etc.).

## Example

`gcl init` (initialize repo)

`gcl track "*.wav"` (track wav files)

`gcl add .` (add files to commit)

`gcl status` (get repo status)

`gcl commit -m "init commit"` (commit changes)

`gcl remote add origin git@github.com:me/my-awesome-project` (add remote repo)

`gcl push` (push git repo and sync files with cloud)

`gcl fetch` (fetch changes)

`gcl pull` (pull remote changes and sync files with cloud)

## Limitations

Currently, only AWS S3 is supported.

## License

See the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mjlabe/gclfs",
    "name": "gclfs",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6, <4",
    "maintainer_email": "",
    "keywords": "GIT,LFS,CLOUD,STORAGE,AWS,S3",
    "author": "Marc LaBelle",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/60/a9/9546e6cbce5f3e8665a8580dad8a7b5f026b54238a078ee34733b445b189/gclfs-0.1.1.tar.gz",
    "platform": null,
    "description": "# Git Cloud Large File Storage\n\nGit LFS for large files that need cloud storage.\n\n## Setup\n\n### AWS S3\n\n1. [Install AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).\n2. Create an [S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) and \n[AWS access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html#gs-get-keys).\n3. Put the access keys in `~/.aws/credentials` as described [here](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). \nNote, the profile used by gclfs is `gclfs`. This can be overridden in `gclfs.config`. See example below.\n4. Add bucket name to `gclfs.config`.\n\nExample credentials file:\n\n```ini\n# ~/.aws/credentials\n[default]\naws_access_key_id=AKIAASSFODNN7EXAMPLE\naws_secret_access_key=wJalrP0dnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\n\n[gclfs]\naws_access_key_id=BTIAIOSFODNN7EXAMPLE\naws_secret_access_key=xyalrXUghdEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\n```\n\nExample config file with overridden profile name:\n```ini\n# gclfs.config\n[s3]\nbucket=my-awesome-bucket\nprofile=default\n```\n\n## Usage\n\n### Tracking\n\nTo track files with a specific extension that will be uploaded to cloud storage, run `gcl track *.<file_extension>`\n\nFor example, to track wav files:\n\n`gcl track \"*.wav\"`\n\nThis adds the extension to `.gitattributes`. When pushing to remote repo, this will sync all wav files to S3.\n\n**Important**: To keep the large files from getting committed to the git repo, you still have to add them to \n`.gitignore`.\n\n### Commands\n\nYour normal git commands work here and a remote git repo should be setup as usual \n(with `git init` and `git remote add`, etc.).\n\n## Example\n\n`gcl init` (initialize repo)\n\n`gcl track \"*.wav\"` (track wav files)\n\n`gcl add .` (add files to commit)\n\n`gcl status` (get repo status)\n\n`gcl commit -m \"init commit\"` (commit changes)\n\n`gcl remote add origin git@github.com:me/my-awesome-project` (add remote repo)\n\n`gcl push` (push git repo and sync files with cloud)\n\n`gcl fetch` (fetch changes)\n\n`gcl pull` (pull remote changes and sync files with cloud)\n\n## Limitations\n\nCurrently, only AWS S3 is supported.\n\n## License\n\nSee the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Git LFS for large files that need cloud storage.",
    "version": "0.1.1",
    "split_keywords": [
        "git",
        "lfs",
        "cloud",
        "storage",
        "aws",
        "s3"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5e3582252c0806ac30398dfd6b1b446d907180d4f79cce48366488d80d2ba515",
                "md5": "270be043cf48685c9443ff2467a03fda",
                "sha256": "20e0b5ecc24483fdbb31de427fe703207c43df1279ef0af4a5fe8a6f2984ba10"
            },
            "downloads": -1,
            "filename": "gclfs-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "270be043cf48685c9443ff2467a03fda",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6, <4",
            "size": 7193,
            "upload_time": "2023-03-27T23:24:02",
            "upload_time_iso_8601": "2023-03-27T23:24:02.734011Z",
            "url": "https://files.pythonhosted.org/packages/5e/35/82252c0806ac30398dfd6b1b446d907180d4f79cce48366488d80d2ba515/gclfs-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "60a99546e6cbce5f3e8665a8580dad8a7b5f026b54238a078ee34733b445b189",
                "md5": "d975b6f8be0e68aededbd4c824046ebf",
                "sha256": "c3eb8f0657e1a3b656fc35df3378b4e37528675e90d938162fb66ffd147cf403"
            },
            "downloads": -1,
            "filename": "gclfs-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d975b6f8be0e68aededbd4c824046ebf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6, <4",
            "size": 5704,
            "upload_time": "2023-03-27T23:24:04",
            "upload_time_iso_8601": "2023-03-27T23:24:04.413298Z",
            "url": "https://files.pythonhosted.org/packages/60/a9/9546e6cbce5f3e8665a8580dad8a7b5f026b54238a078ee34733b445b189/gclfs-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-27 23:24:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "mjlabe",
    "github_project": "gclfs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "gclfs"
}
        
Elapsed time: 0.57840s