{ "info": { "author": "Marko Ba\u0161tovanovi\u0107", "author_email": "marko.bast@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.7" ], "description": "## AWS S3 Glacier Restore\nUtility script to restore files on AWS S3 that have GLACIER storage class.\n\n### Features at a glance\n- Calculates exact costs before restore\n- Multithreaded API requests significantly reduce restore time\n- Can check if all files for given prefix are already restored or not. \n\n### Installation and Upgrade\naws-s3-glacier-restore is developed in Python and uses [pip](http://www.pip-installer.org/en/latest/).
\n\nThe easiest way to install/upgrade s3select is to use `pip` in a `virtualenv`:\n\n
$ pip install -U aws-s3-glacier-restore\n\nor, if you are not installing in a `virtualenv`, to install/upgrade globally:\n\n
$ sudo pip install -U aws-s3-glacier-restore\n\nor for your user:\n\n
$ pip install --user -U aws-s3-glacier-restore\n\n### Authentication\n\naws-s3-glacier-restore uses the same authentication and endpoint configuration as [aws-cli](https://github.com/aws/aws-cli#getting-started). If aws command is working on your machine, there is no need for any additional configuration.\n\n### Example usage\nFirst get some help:\n
\n$ aws-s3-glacier-restore -h\nusage: aws-s3-glacier-restore [-h] [-p PREFIX] [-i INPUT_FILE]\n [-d DAYS_TO_KEEP] [-D DESTINATION_BUCKET]\n [-t THREADS] [-s] [--profile PROFILE]\n\nUtility script to restore files on AWS S3 that have GLACIER storage class\n\noptional arguments:\n -h, --help show this help message and exit\n -p PREFIX, --prefix PREFIX\n S3 prefix URL to restore\n -i INPUT_FILE, --input_file INPUT_FILE\n Input file containing all s3 paths to restore\n -d DAYS_TO_KEEP, --days_to_keep DAYS_TO_KEEP\n How many days to keep restored files\n -D DESTINATION_BUCKET, --destination_bucket DESTINATION_BUCKET\n Restore to this bucket instead of to original bucket\n while preserving same path structure as in original\n bucket. This is useful if you don't know for how long\n you'll need restored files. Once you don't need them\n you can delete them from destination bucket.\n -t THREADS, --threads THREADS\n Number of threads to use. Default=40\n -s, --status_print Just print status of files and how many of them are in\n glacier and how many of them are restored already\n --profile PROFILE Use a specific AWS profile from your credential file.\n\n\nThen full run might look like this:\n
\n$ aws-s3-glacier-restore -p s3://test-restore-bucket/backup2/image_1503789115/part-r-0003 -d 2\n\nGetting a listing of the files to restore... Done\n\nAbout to restore 18.72GB in 10 files\n\nRestore will cost us:\n1) Expedited tier: $0.66\n2) Standard tier: $0.19\n3) Bulk tier: $0.05\nKeeping files on S3 will cost: 0.02 per day\n\nPress number in front of an option you wish or any other key to exit: 3\nStarting restore using Bulk tier... Restoring backup2/image_1503789115/part-r-00030.gz\nRestoring backup2/image_1503789115/part-r-00031.gz\nRestoring backup2/image_1503789115/part-r-00032.gz\nRestoring backup2/image_1503789115/part-r-00034.gz\nRestoring backup2/image_1503789115/part-r-00036.gz\nRestoring backup2/image_1503789115/part-r-00038.gz\nRestoring backup2/image_1503789115/part-r-00033.gz\nRestoring backup2/image_1503789115/part-r-00037.gz\nRestoring backup2/image_1503789115/part-r-00035.gz\nRestoring backup2/image_1503789115/part-r-00039.gz\nDone\nTime elapsed: 2s\n\n\nParameter --days_to_keep (-d) specifies how long files will be accessible as regular files over S3. In case you have finished with files earlier than expected or want to extend the amount of days they are kept available, you can run the same command, but this time with modified \"-d\" parameter. If you specify \"-d 1\" this will signal that files should be archived back as soon as possible (usually happens within one day):\n```\n$ aws-s3-glacier-restore -p s3://test-restore-bucket/backup2/image_1503789115/part-r-0003 -d 0\n```\n\nIf you want to check restore status of files you can use -s switch:\n```\n$ aws-s3-glacier-restore -p s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-0009 -s\nGetting a listing of the files... Done\n\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00091 is being restored\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00092 is in Glacier and not being restored\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00093 is in Glacier and not being restored\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00095 is in Glacier and not being restored\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00094 is in Glacier and not being restored\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00090 is restored until Fri, 19 Oct 2018 00:00:00 GMT\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00098 is restored until Fri, 19 Oct 2018 00:00:00 GMT\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00096 is restored until Mon, 24 Sep 2018 00:00:00 GMT\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00099 is in Glacier and not being restored\nObject s3://test-restore-bucket/archives/cars/GlacierImageArchive_2017_10-00000001-r-00097 is in Glacier and not being restored\nRestored count: 3/10\n```\n### License\n\nDistributed under the MIT license. See `LICENSE` for more information.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/marko-bast/aws-s3-glacier-restore", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aws-s3-glacier-restore", "package_url": "https://pypi.org/project/aws-s3-glacier-restore/", "platform": "", "project_url": "https://pypi.org/project/aws-s3-glacier-restore/", "project_urls": { "Homepage": "https://github.com/marko-bast/aws-s3-glacier-restore" }, "release_url": "https://pypi.org/project/aws-s3-glacier-restore/0.0.2/", "requires_dist": [ "requests[security] (>=2.18.3)", "six", "boto3 (>=1.9)" ], "requires_python": "", "summary": "Utility script to restore files on AWS S3 that have GLACIER storage class", "version": "0.0.2" }, "last_serial": 4924100, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "4f9e4afffa48fd2ed9b7e48cf1ae536f", "sha256": "f96803d80c2a6acee671654e705619ffdb0c2419814376b2f27aea1e9723f723" }, "downloads": -1, "filename": "aws_s3_glacier_restore-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4f9e4afffa48fd2ed9b7e48cf1ae536f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7507, "upload_time": "2019-03-07T14:05:25", "url": "https://files.pythonhosted.org/packages/a1/34/dfa2db41ee1b1c111fab62cc9d1a2c44f2af85e66f76e6c095678a5b8ee7/aws_s3_glacier_restore-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03f0541ef223b52d898edb0654dd018c", "sha256": "37e6f824f365f1b1cbd5cc319dc27b38ced84c29e362efa721c5ad7a8f90d6dd" }, "downloads": -1, "filename": "aws-s3-glacier-restore-0.0.1.tar.gz", "has_sig": false, "md5_digest": "03f0541ef223b52d898edb0654dd018c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6179, "upload_time": "2019-03-07T14:05:27", "url": "https://files.pythonhosted.org/packages/27/12/e371633a4ed95795b1ff20f0febf9c5dfa8a63dc4c4f42530a9e520994ed/aws-s3-glacier-restore-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "e80836315a0757ef25e0d45ad8c8c99c", "sha256": "72b22a0dc5e96d4925bb898e7221a0249b8b3303a21bf56465d96b07cc725cd7" }, "downloads": -1, "filename": "aws_s3_glacier_restore-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e80836315a0757ef25e0d45ad8c8c99c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7613, "upload_time": "2019-03-11T09:09:56", "url": "https://files.pythonhosted.org/packages/e9/c4/984f532cfd83b8002d9fb7a8d8bac479a9b5d2ab3516a20268ec764252f9/aws_s3_glacier_restore-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54f20a2c3c401775a643096518dc7cc6", "sha256": "097ebbb6e8e20f7862d9b3fea281db90b505f4de8926111c74b3ed5a5c0d8dc6" }, "downloads": -1, "filename": "aws-s3-glacier-restore-0.0.2.tar.gz", "has_sig": false, "md5_digest": "54f20a2c3c401775a643096518dc7cc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6313, "upload_time": "2019-03-11T09:09:58", "url": "https://files.pythonhosted.org/packages/cf/98/01c4228db79cbb0e40bdea986ae2ec517b2c83a8c681b08d711db485aa88/aws-s3-glacier-restore-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e80836315a0757ef25e0d45ad8c8c99c", "sha256": "72b22a0dc5e96d4925bb898e7221a0249b8b3303a21bf56465d96b07cc725cd7" }, "downloads": -1, "filename": "aws_s3_glacier_restore-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e80836315a0757ef25e0d45ad8c8c99c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7613, "upload_time": "2019-03-11T09:09:56", "url": "https://files.pythonhosted.org/packages/e9/c4/984f532cfd83b8002d9fb7a8d8bac479a9b5d2ab3516a20268ec764252f9/aws_s3_glacier_restore-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54f20a2c3c401775a643096518dc7cc6", "sha256": "097ebbb6e8e20f7862d9b3fea281db90b505f4de8926111c74b3ed5a5c0d8dc6" }, "downloads": -1, "filename": "aws-s3-glacier-restore-0.0.2.tar.gz", "has_sig": false, "md5_digest": "54f20a2c3c401775a643096518dc7cc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6313, "upload_time": "2019-03-11T09:09:58", "url": "https://files.pythonhosted.org/packages/cf/98/01c4228db79cbb0e40bdea986ae2ec517b2c83a8c681b08d711db485aa88/aws-s3-glacier-restore-0.0.2.tar.gz" } ] }