{ "info": { "author": "Dirk Uys", "author_email": "dirkcuys@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "S3 backup rotate\n================\n\nBackup your files to Amazon Web Services in a way that slowly forgets! I've learned that this way is refered to as the ['Grandfather, father, son'](http://en.wikipedia.org/wiki/Backup_rotation_scheme#Grandfather-father-son) strategy.\n\nThis script copies a file to Amazon S3 and rotates it.\n\nThe filename will have a date stamp added before the first . in the filename. *Do not* add a timestamp yourself, this will cause the script to treat the file as a unique file and the rotation won't work!\n\nRotation works as follows:\n- Keep files from the last X days\n- After that, keep Y files spaced at least a week apart\n- After that, keep Z files spaced at least 30 days apart\n\n\n## Installation\n\n`pip install s3-backup-rotate`\n\n## Usage\n\nExport the following environment variables:\n- `export AWS_ACCESS_KEY_ID=yourkeyidhere`\n- `export AWS_SECRET_ACCESS_KEY=yoursecretkey`\n\nYou can also use one of the other methods supported by boto.\n\n`upload_rotate.py bucket prefix file`.\n\nSee `python upload_rotate.py -h` for more info.\n\n## Development\n\n### Buidling Pypi package\n\npython setup.py sdist\ntwine upload dist/s3-backup-rotate-", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dirkcuys/s3-backup-rotate", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "s3-backup-rotate", "package_url": "https://pypi.org/project/s3-backup-rotate/", "platform": "", "project_url": "https://pypi.org/project/s3-backup-rotate/", "project_urls": { "Homepage": "https://github.com/dirkcuys/s3-backup-rotate" }, "release_url": "https://pypi.org/project/s3-backup-rotate/0.3.3/", "requires_dist": null, "requires_python": "", "summary": "Script to rotate backup files on AWS S3 according to a grandfather, father, son strategy.", "version": "0.3.3" }, "last_serial": 3751285, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "3768d6339eacb9f6262505955ac702e8", "sha256": "0ee0844bd9fe7e9904573d092b686b6a6f92f1107e582aaf9b0a31cdce979492" }, "downloads": -1, "filename": "s3_backup_rotate-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3768d6339eacb9f6262505955ac702e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6337, "upload_time": "2017-10-13T15:56:45", "url": "https://files.pythonhosted.org/packages/0a/3e/4594a1ace741795c467d9295698f49d5c03e62748e54d561455439fe5fbe/s3_backup_rotate-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60dc51716e23ae66f03ffccbd17639ab", "sha256": "60cd0f22ed0d30044049db2d7a9a9cd1784eabc622f5960917ffb4e3ca7648a6" }, "downloads": -1, "filename": "s3-backup-rotate-0.3.0.tar.gz", "has_sig": false, "md5_digest": "60dc51716e23ae66f03ffccbd17639ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4853, "upload_time": "2017-10-13T15:59:01", "url": "https://files.pythonhosted.org/packages/6a/d3/5c2699e97c96144caecbb688a8e6d7e9d2c8259ecce5b412dedc0225edbb/s3-backup-rotate-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "7ea920101c32203b31df662d870f981b", "sha256": "b987c239f2e568fca6442eb8e5ec036eae2e0919165d3fc8e3e0e27c8e54133c" }, "downloads": -1, "filename": "s3-backup-rotate-0.3.1.tar.gz", "has_sig": false, "md5_digest": "7ea920101c32203b31df662d870f981b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4838, "upload_time": "2017-10-16T10:30:10", "url": "https://files.pythonhosted.org/packages/14/a0/57aaed9432e61a4ea0490970cc5a7f0d55a014d2bb8221f543c67251dcee/s3-backup-rotate-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "ceed6f0879fd52169bba2b5816053984", "sha256": "a89ba8ee5c0d620bf0535f7ff5699a22e9101c3c00aa3d0b1554cb4359da9351" }, "downloads": -1, "filename": "s3-backup-rotate-0.3.2.tar.gz", "has_sig": false, "md5_digest": "ceed6f0879fd52169bba2b5816053984", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4885, "upload_time": "2017-11-10T10:50:04", "url": "https://files.pythonhosted.org/packages/e6/23/c46d5380fa0cb58c9872dfbb2d3c41cb21ef40f1bf797b663a9ddaa36816/s3-backup-rotate-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "dc5d5d9a31b3f2c689483f75f2230079", "sha256": "772e786ea27573f3958f21002534d435bf588ecc1275badd3bb2eeb92ad83235" }, "downloads": -1, "filename": "s3-backup-rotate-0.3.3.tar.gz", "has_sig": false, "md5_digest": "dc5d5d9a31b3f2c689483f75f2230079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4955, "upload_time": "2018-04-10T09:06:16", "url": "https://files.pythonhosted.org/packages/ee/76/71d88a87124959a54a8579ed1de9ab772c3b63b9548d3d0ae111f42b6098/s3-backup-rotate-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dc5d5d9a31b3f2c689483f75f2230079", "sha256": "772e786ea27573f3958f21002534d435bf588ecc1275badd3bb2eeb92ad83235" }, "downloads": -1, "filename": "s3-backup-rotate-0.3.3.tar.gz", "has_sig": false, "md5_digest": "dc5d5d9a31b3f2c689483f75f2230079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4955, "upload_time": "2018-04-10T09:06:16", "url": "https://files.pythonhosted.org/packages/ee/76/71d88a87124959a54a8579ed1de9ab772c3b63b9548d3d0ae111f42b6098/s3-backup-rotate-0.3.3.tar.gz" } ] }