{ "info": { "author": "Alessandro Molina", "author_email": "alessandro.molina@axant.it", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "\n.. image:: https://raw.github.com/amol-/depot/master/docs/_static/logo.png\n\nDEPOT - File Storage Made Easy\n==============================\n\n.. image:: https://travis-ci.org/amol-/depot.png?branch=master \n :target: https://travis-ci.org/amol-/depot \n\n.. image:: https://coveralls.io/repos/amol-/depot/badge.png?branch=master\n :target: https://coveralls.io/r/amol-/depot?branch=master \n\n.. image:: https://img.shields.io/pypi/v/filedepot.svg\n :target: https://pypi.python.org/pypi/filedepot\n\nDEPOT is a framework for easily storing and serving files in\nweb applications on Python2.6+ and Python3.2+.\n\nDEPOT supports storing files in multiple backends, like:\n\n * Local Disk\n * In Memory (for tests)\n * On GridFS\n * On Amazon S3 (or compatible services)\n\nand integrates with database by providing files\nattached to your **SQLAlchemy** or **Ming/MongoDB** models\nwith respect to transactions behaviours (files are rolled back too).\n\nInstalling\n----------\n\nInstalling DEPOT can be done from PyPi itself by installing the ``filedepot`` distribution::\n\n $ pip install filedepot\n\nGetting Started\n---------------\n\nTo start using Depot refer to `Documentation `_\n\nDEPOT was `presented at PyConUK and PyConFR `_ in 2014\n\nHere is a simple example of using depot standalone to store files on MongoDB::\n\n from depot.manager import DepotManager\n\n # Configure a *default* depot to store files on MongoDB GridFS\n DepotManager.configure('default', {\n 'depot.backend': 'depot.io.gridfs.GridFSStorage',\n 'depot.mongouri': 'mongodb://localhost/db'\n })\n\n depot = DepotManager.get()\n\n # Save the file and get the fileid\n fileid = depot.create(open('/tmp/file.png'))\n\n # Get the file back\n stored_file = depot.get(fileid)\n print stored_file.filename\n print stored_file.content_type\n\nChangeLog\n---------\n\n0.7.0\n~~~~~\n\n- Support for ``storage_class`` option in ``depot.io.boto3.S3Storage`` backend. Detaults to ``STANDARD``\n\n0.6.0\n~~~~~\n\n- Officially support Python 3.7\n- Fix DEPOT wrongly serving requests for any url that starts with the mountpoint. (IE: ``/depotsomething`` was wrongly served for ``/depot`` mountpoint)\n- In SQLAlchemy properly handle deletion of objects deleted through ``Relationship.remove`` (IE: ``parent.children.remove(X)``)\n- In SQLAlchemy properly handle entities deleted through ``cascade='delete-orphan'``\n\n0.5.2\n~~~~~\n\n- Fixed an *start_response called a second time without providing exc_info* error with storages supporting plublic urls\n\n\n0.5.1\n~~~~~\n\n- URLs generated by ``DepotMiddleware`` are now guaranteed to be plain ascii\n- [Breaking change]: Bucket existance with S3 storages should now be more reliable when the\n bucket didn't already exist, but it requires an additional AWS policy: `s3:ListAllMyBuckets` that wasn't required on 0.5.0\n\n0.5.0\n~~~~~\n\n- ``depot.io.boto3.S3Storage`` now provides support for accessing S3 with ``boto3``.\n The previously existing ``depot.io.awss3.S3Storage`` can still be used to store\n files on S3 using ``boto``.\n- SQLAlchemy integration now handles deletion of files on rollback when session\n is not flushed. Previously flushing the session was required before a rollback too.\n- It is now possible to run tests through ``tox`` and build docs through ``tox -e docs``\n- DEPOT is now tested against Python 3.6\n\n0.4.1\n~~~~~\n\n- Fixed installation error on non-UTF8 systems\n- Improved support for polymorphic subtypes in SQLAlchemy\n\n0.4.0\n~~~~~\n\n- Support for Python 3.5\n- Fixed ``Content-Disposition`` header for filenames including a comma\n\n0.3.2\n~~~~~\n\n- ``MemoryFileStorage`` now accepts any option, for easier testing configuration\n\n0.3.1\n~~~~~\n\n* Fixed ``Content-Disposition`` header when serving from S3 directly\n* Fixed size of SQLAlchemy field on Oracle (was bigger than the allowed maximum)\n\n0.3.0\n~~~~~\n\n- ``MemoryFileStorage`` provides in memory storage for files. This is meant to provide a\n convenient way to speed up test suites and avoid fixture clean up issues.\n- S3Storage can now generate public urls for private files (expire in 1 year)\n- Files created from plain bytes are now named \"unnamed\" instead of missing a filename.\n\n0.2.1\n~~~~~\n\n- ``S3Storage`` now supports the ``prefix`` option to store files in a subpath\n\n0.2.0\n~~~~~\n\n- Storages now provide a ``list`` method to list files available on the store (This is not meant to be used to retrieve files uploaded by depot as it lists all the files).\n- ``DepotExtension`` for Ming is now properly documented\n\n0.1.2\n~~~~~\n\n- It is now possible to use multiple ``WithThumbnailFilter`` to generate multiple thumbnails\n with different resolutions.\n- Better documentation for MongoDB ``UploadedFileProperty``\n\n0.1.1\n~~~~~\n\n- Fixed a bug with Ming support when acessing ``UploadedFileProperty`` as a class property\n- Improved support for DEPOT inside TurboGears admin when using MongoDB\n\n0.1.0\n~~~~~\n\n- Added ``DepotManager.alias`` to configure aliases to storage.\n This allows easy migration from one storage to another by switching where the alias points.\n- Now ``UploadedFileField`` permits to specify ``upload_storage`` to link a Model Column to a specific storage.\n- Added ``policy`` and ``encrypt_key`` options to `S3Storage` to upload private and encrypted files.\n\n0.0.6\n~~~~~\n\n- Added `host` option to `S3Storage` to allow using providers different from *AWS*.\n\n0.0.5\n~~~~~\n\n- Added `FileIntent` to explicitly provide `content_type` and `filename` to uploaded content.\n\n0.0.4\n~~~~~\n\n- Added Content-Disposition header with original filename in WSGI middleware\n\n0.0.3\n~~~~~\n\n- Work-Around for issue with `wsgi.file_wrapper` provided by Waitress WSGI Server\n\n0.0.2\n~~~~~\n\n- Official Support for AWS S3 on Python3\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/amol-/depot", "keywords": "storage files s3 gridfs mongodb aws sqlalchemy wsgi", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "filedepot", "package_url": "https://pypi.org/project/filedepot/", "platform": "", "project_url": "https://pypi.org/project/filedepot/", "project_urls": { "Homepage": "https://github.com/amol-/depot" }, "release_url": "https://pypi.org/project/filedepot/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "Toolkit for storing files and attachments in web applications", "version": "0.7.0" }, "last_serial": 5673850, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b91c1398bead09712c21f30fed67be21", "sha256": "cf2f34fe8ea6a9aabef781f0c4c9be5d50b2e593caedb50083aa7ac9f9664dd8" }, "downloads": -1, "filename": "filedepot-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b91c1398bead09712c21f30fed67be21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24168, "upload_time": "2014-10-17T20:32:25", "url": "https://files.pythonhosted.org/packages/49/26/099279f565ebd924042b5073e03d937a2262593823cef403ecee218e41df/filedepot-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0785d3533602587f75661e52f947d630", "sha256": "974abc6190bd57e05060fe175c9ad4df9e967c7194dde92ba1bdcd4e3e1798ac" }, "downloads": -1, "filename": "filedepot-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0785d3533602587f75661e52f947d630", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24470, "upload_time": "2014-11-25T14:25:49", "url": "https://files.pythonhosted.org/packages/53/f4/736651da335d228373a9e03cede446dc5af2c6ac25ca7bee6325a1ff5aba/filedepot-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b58030154aeced2a92a26d5e5125a115", "sha256": "ad95388e25c2d26049dc549b9c1eddf8f785277d2c8529378c1f8d93d0fba7c8" }, "downloads": -1, "filename": "filedepot-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b58030154aeced2a92a26d5e5125a115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15789, "upload_time": "2015-02-09T16:45:53", "url": "https://files.pythonhosted.org/packages/a9/be/6cb506ce3175421e9fcfc394bfe794687d282a375d8c4dbc81dd3226dccc/filedepot-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "83781f69314f90f1bd808a719279ade8", "sha256": "c9749e994c7d26a2927529b20f2f28ff2da0e02e40082864ffbe41e583e46478" }, "downloads": -1, "filename": "filedepot-0.0.4.tar.gz", "has_sig": false, "md5_digest": "83781f69314f90f1bd808a719279ade8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16417, "upload_time": "2015-04-26T07:13:56", "url": "https://files.pythonhosted.org/packages/55/57/938f712c748b53811f8dc69560c732c3717b500ec7719e2774fa2dbc6990/filedepot-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "4172ea5a729c4a3910bdb98e4022520e", "sha256": "3a472d3ec17e517a8f346796d5d62deda0333d5679d2b095e682a2fc76712b66" }, "downloads": -1, "filename": "filedepot-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4172ea5a729c4a3910bdb98e4022520e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17102, "upload_time": "2015-05-16T09:44:34", "url": "https://files.pythonhosted.org/packages/19/8e/0d3de39f5f5768fcf0da7452a003c331080564cf51a8041538cb8ecced87/filedepot-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "3ce6b6a43d00de73c75779d14ada071f", "sha256": "4f47c11a3383d4fd2e60cd52aa4f7894113a094794fb17f578bb531fd67d9b79" }, "downloads": -1, "filename": "filedepot-0.0.6.tar.gz", "has_sig": false, "md5_digest": "3ce6b6a43d00de73c75779d14ada071f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17223, "upload_time": "2015-06-09T07:26:39", "url": "https://files.pythonhosted.org/packages/f8/ad/cebc0e0c4d49fa2067d764fddbeb4f6f3fa38a583a40ea0cc785af8af145/filedepot-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "0ee73a732f8058fe8dc6a39550ac81f5", "sha256": "07ccf95930a5305c6c2f7ab58d3893c92cfeda972e3f5bac1a81159b0bf2b501" }, "downloads": -1, "filename": "filedepot-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0ee73a732f8058fe8dc6a39550ac81f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17624, "upload_time": "2015-09-02T12:31:59", "url": "https://files.pythonhosted.org/packages/0f/93/76b7a44a747468e9227f4b65cf23b6618d17dd9ad720c4be3addc189f68b/filedepot-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4294e8a28cdfe66e2d13f38f8a0d53d7", "sha256": "462f20be313b6abdf1ffd249f84eab7c7bda3ce1f682137928ecdeeb277692c7" }, "downloads": -1, "filename": "filedepot-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4294e8a28cdfe66e2d13f38f8a0d53d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17861, "upload_time": "2015-09-11T16:10:55", "url": "https://files.pythonhosted.org/packages/55/bf/854bbb92942c60b6b83ed98970c7d3b12ca3a37daa931e77f3e24d5f1d0a/filedepot-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f039b5d6bc9a8ef151a126af5762de0d", "sha256": "49bccbaa088a57c269d5232540d98e47b1e6344d9bba0843a5d1321f9b5b7e19" }, "downloads": -1, "filename": "filedepot-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f039b5d6bc9a8ef151a126af5762de0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18548, "upload_time": "2015-09-28T20:05:28", "url": "https://files.pythonhosted.org/packages/40/6e/2d245715b1f1651ef3cc50023bcbb266068ac64d5551f044d540a226dec9/filedepot-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f8a80ee88aa665294c48f137d1bcd369", "sha256": "9092b96fe0aaa2da268162feb85ce512586e87a56c9df8dc79d40352eacc4e64" }, "downloads": -1, "filename": "filedepot-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f8a80ee88aa665294c48f137d1bcd369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18924, "upload_time": "2015-10-03T13:44:43", "url": "https://files.pythonhosted.org/packages/7e/9e/4217de62229eedf118fd822fe2fbd53af9d066c8d2f91b0f9e75fac56ba8/filedepot-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "69cca848334bdaf1a998786ddcacd0d3", "sha256": "85b6d9c80e8f457f191d437a1a0c753a00db78e4aba6803bfedbad38275b66e9" }, "downloads": -1, "filename": "filedepot-0.2.1.tar.gz", "has_sig": false, "md5_digest": "69cca848334bdaf1a998786ddcacd0d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19194, "upload_time": "2015-10-22T18:59:40", "url": "https://files.pythonhosted.org/packages/7e/2f/69d48fe03cb3266f84b9c00ed1f4e2e8a10bf3bdeaa3a54a0fa5f78d3a5e/filedepot-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "062185ba87b4b6651b858678c3abe79c", "sha256": "e7b299a5c1b4a04e0d4409a137b499db629791bc623c3be4b9d67662d160db8d" }, "downloads": -1, "filename": "filedepot-0.3.0.tar.gz", "has_sig": false, "md5_digest": "062185ba87b4b6651b858678c3abe79c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20230, "upload_time": "2016-03-19T23:38:44", "url": "https://files.pythonhosted.org/packages/17/2d/99fe02147bcc5e5aa1c5c786c29e05046dc5c6649e1793a59ddd6c86191e/filedepot-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "f2110b6c9f5ac23864d60f0f0354924e", "sha256": "647d84325e9d215b25b7be6ef0ca51b88b5ad402af475cae3ea6abf6689059f2" }, "downloads": -1, "filename": "filedepot-0.3.1.tar.gz", "has_sig": false, "md5_digest": "f2110b6c9f5ac23864d60f0f0354924e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20396, "upload_time": "2016-07-10T14:36:49", "url": "https://files.pythonhosted.org/packages/cd/73/323bc9c911c345310f01a3be615255349ac0e09f348fc6ced7e7327666a2/filedepot-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "ef54ebf74bd16f0c65d347e51f6b7adf", "sha256": "132cf636f315392b45a405af4e285a5f4b8f1fcc3649f5a9e4ee791978e6e518" }, "downloads": -1, "filename": "filedepot-0.3.2.tar.gz", "has_sig": false, "md5_digest": "ef54ebf74bd16f0c65d347e51f6b7adf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20451, "upload_time": "2016-09-08T17:37:20", "url": "https://files.pythonhosted.org/packages/92/86/e5963607f857bef046683a8a208eb916f012d49914afb7bdf85e76f4b25b/filedepot-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "81d069474247426b879f5e1ff5840697", "sha256": "9e4b8d3f24fd2df7d96c22a3d5140a2e39969687159854ffa0f788b5f8848781" }, "downloads": -1, "filename": "filedepot-0.4.0.tar.gz", "has_sig": false, "md5_digest": "81d069474247426b879f5e1ff5840697", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20525, "upload_time": "2016-09-08T18:23:00", "url": "https://files.pythonhosted.org/packages/40/c4/bf1463ffb88b89e742bf7a10ac8eb07b290074f1de6e01f2bbc7ba538fbb/filedepot-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "7d484d1b8e86d9f48c80e7595464852d", "sha256": "b409164fcc1f67defcaed1cd67d38994d6dabbb43dbe2695094fb8d8f208b715" }, "downloads": -1, "filename": "filedepot-0.4.1.tar.gz", "has_sig": false, "md5_digest": "7d484d1b8e86d9f48c80e7595464852d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20578, "upload_time": "2017-01-25T22:11:24", "url": "https://files.pythonhosted.org/packages/a0/16/aff02be40a8fd6fbab3818ea2cea5f84d3dff9977ae54de1986e5be95069/filedepot-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "922e93386620be38c49adeb27de8ce9e", "sha256": "e319a2b163c37fa1f3da21ad7c81a49a12de66da87d1af428fb143f092b96e5d" }, "downloads": -1, "filename": "filedepot-0.5.0.tar.gz", "has_sig": false, "md5_digest": "922e93386620be38c49adeb27de8ce9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21795, "upload_time": "2017-05-07T09:26:34", "url": "https://files.pythonhosted.org/packages/75/89/c744b5326d956dd1e8b2e591cb50759965d16ccfd49e7d3124a85a821069/filedepot-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "8e69e51c5faaa5de52782cc2b9f29311", "sha256": "15d0b57cf5dc8343d6f08c997f8e2cbc6862af62d0a66d7224cfd58741223665" }, "downloads": -1, "filename": "filedepot-0.5.1.tar.gz", "has_sig": false, "md5_digest": "8e69e51c5faaa5de52782cc2b9f29311", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21978, "upload_time": "2018-02-06T21:48:50", "url": "https://files.pythonhosted.org/packages/f0/af/8522866d8c8df1c35cd0701df8cadc4cfcdda14490cd778ac012e6d35679/filedepot-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "12bb21129ad34517dc947642ccacfe64", "sha256": "30ff9cb968137253e8d6260ce8b575feb15cb23b44a316dad2aee39de2c6bbfa" }, "downloads": -1, "filename": "filedepot-0.5.2.tar.gz", "has_sig": false, "md5_digest": "12bb21129ad34517dc947642ccacfe64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22049, "upload_time": "2018-02-07T19:14:40", "url": "https://files.pythonhosted.org/packages/8d/73/60668c2e6545d995a97c86086f5d83ed7cd80a70ba282fe485e126114fec/filedepot-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "78ab593f8304a867f70cf02f2e36464d", "sha256": "a6e46f95d9265774f84901b7f27aa7dd2eec845a64549c5f56d4c4badcf5e9da" }, "downloads": -1, "filename": "filedepot-0.6.0.tar.gz", "has_sig": false, "md5_digest": "78ab593f8304a867f70cf02f2e36464d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25311, "upload_time": "2019-01-30T15:14:04", "url": "https://files.pythonhosted.org/packages/d3/ef/c5f5cd83178f0d8140b5a7493d3fa90da744fee4230ad1450f78ebd5298d/filedepot-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "623880987b4a3335a559ac033f4c9de5", "sha256": "850a3a044fdc455d782a21d08340a3beecb2f1dbb41f35af9938a76d242c2ed6" }, "downloads": -1, "filename": "filedepot-0.7.0.tar.gz", "has_sig": false, "md5_digest": "623880987b4a3335a559ac033f4c9de5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22680, "upload_time": "2019-08-13T22:03:15", "url": "https://files.pythonhosted.org/packages/89/56/fa4f5ba569379e15350cf9a56a78d6672024fbf877f3e5a760d18dfcea04/filedepot-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "623880987b4a3335a559ac033f4c9de5", "sha256": "850a3a044fdc455d782a21d08340a3beecb2f1dbb41f35af9938a76d242c2ed6" }, "downloads": -1, "filename": "filedepot-0.7.0.tar.gz", "has_sig": false, "md5_digest": "623880987b4a3335a559ac033f4c9de5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22680, "upload_time": "2019-08-13T22:03:15", "url": "https://files.pythonhosted.org/packages/89/56/fa4f5ba569379e15350cf9a56a78d6672024fbf877f3e5a760d18dfcea04/filedepot-0.7.0.tar.gz" } ] }