Name | django-blob-storage JSON |
Version |
0.2.2
JSON |
| download |
home_page | |
Summary | |
upload_time | 2023-05-22 09:50:50 |
maintainer | |
docs_url | None |
author | alex |
requires_python | >=3.9,<4.0 |
license | BSD |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# django-blob-storage
This is a fork from django-db-storage2
## Overview
Warning: In many cases, storing files in the database is a BAD idea. Your database will easily become bloated and the performance can degrade rapidly. See this `StackExchange post`\_ for more information.
.. \_StackExchange post: http://programmers.stackexchange.com/questions/150669/is-it-a-bad-practice-to-store-large-files-10-mb-in-a-database
This is a custom storage backend for storing files in the database instead of the file system and is a drop-in replacement for Django's FileSystemStorage. Some benefits of this application:
- no changes needed to existing models, it just works (and if it doesn't, open a ticket!)
- django-admin is implemented and can be used to search, upload, download and manage files
- 100% code coverage with unit tests
- only db files need to be backed up
## Requirements
- Python (3.5+)
- Django (3.2+)
## Installation
Installation using pip::
$ pip install django-blob-storage
Update `settings.py`
```python
# Add 'dbstorage' to INSTALLED_APPS
INSTALLED_APPS = [
'dbstorage',
]
# Optionally set DEFAULT_FILE_STORAGE
DEFAULT_FILE_STORAGE = 'dbstorage.storage.DBStorage'
# Optionally for tracking file accesses (currently over view)
# DJANGO_DBFILE_TRACK_ACCESSED=True
# Optionally set another db than default
# DJANGO_DBFILE_DB = "foo"
# Choose a root url for uploaded files
MEDIA_URL = '/media/'
```
Update `urls.py`
```python
urlpatterns = [
...
# dbstorage
path("", include("dbstorage.urls")),
]
```
Run database migrations (done automatically, when included as app)
```sh
env DJANGO_SETTINGS_MODULE=tests.settings PYTHONPATH="." poetry run django-admin migrate
```
## How to Use
No modification are needed for models to work properly.
```python
def user_directory_path(instance, filename):
return 'user_{0}/{1}'.format(instance.user.id, filename)
class MyModel(models.Model):
file_field1 = models.FileField()
file_field2 = models.FileField(upload_to='uploads/%Y/%m/%d/')
file_field3 = models.FileField(upload_to=user_directory_path)
```
## Bugs?
Create an issue at https://github.com/devkral/django-blob-storage/issues
Raw data
{
"_id": null,
"home_page": "",
"name": "django-blob-storage",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "alex",
"author_email": "devkral@web.de",
"download_url": "https://files.pythonhosted.org/packages/2b/21/4f62515414984d88521ef2216c5c94927efb01b4632c5cea9c3fa4af3c40/django_blob_storage-0.2.2.tar.gz",
"platform": null,
"description": "# django-blob-storage\n\nThis is a fork from django-db-storage2\n\n## Overview\n\nWarning: In many cases, storing files in the database is a BAD idea. Your database will easily become bloated and the performance can degrade rapidly. See this `StackExchange post`\\_ for more information.\n\n.. \\_StackExchange post: http://programmers.stackexchange.com/questions/150669/is-it-a-bad-practice-to-store-large-files-10-mb-in-a-database\n\nThis is a custom storage backend for storing files in the database instead of the file system and is a drop-in replacement for Django's FileSystemStorage. Some benefits of this application:\n\n- no changes needed to existing models, it just works (and if it doesn't, open a ticket!)\n- django-admin is implemented and can be used to search, upload, download and manage files\n- 100% code coverage with unit tests\n- only db files need to be backed up\n\n## Requirements\n\n- Python (3.5+)\n- Django (3.2+)\n\n## Installation\n\nInstallation using pip::\n\n $ pip install django-blob-storage\n\nUpdate `settings.py`\n\n```python\n\n # Add 'dbstorage' to INSTALLED_APPS\n INSTALLED_APPS = [\n 'dbstorage',\n ]\n\n # Optionally set DEFAULT_FILE_STORAGE\n DEFAULT_FILE_STORAGE = 'dbstorage.storage.DBStorage'\n\n # Optionally for tracking file accesses (currently over view)\n # DJANGO_DBFILE_TRACK_ACCESSED=True\n # Optionally set another db than default\n # DJANGO_DBFILE_DB = \"foo\"\n\n # Choose a root url for uploaded files\n MEDIA_URL = '/media/'\n```\n\nUpdate `urls.py`\n\n```python\n\n urlpatterns = [\n ...\n # dbstorage\n path(\"\", include(\"dbstorage.urls\")),\n ]\n```\n\nRun database migrations (done automatically, when included as app)\n\n```sh\n\nenv DJANGO_SETTINGS_MODULE=tests.settings PYTHONPATH=\".\" poetry run django-admin migrate\n\n\n```\n\n## How to Use\n\nNo modification are needed for models to work properly.\n\n```python\n\ndef user_directory_path(instance, filename):\n return 'user_{0}/{1}'.format(instance.user.id, filename)\n\nclass MyModel(models.Model):\n\n file_field1 = models.FileField()\n file_field2 = models.FileField(upload_to='uploads/%Y/%m/%d/')\n file_field3 = models.FileField(upload_to=user_directory_path)\n```\n\n## Bugs?\n\nCreate an issue at https://github.com/devkral/django-blob-storage/issues\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "",
"version": "0.2.2",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6a136526f907c0f54f58d5228e7689b75ae2d569f85c09c67fc56f1eb2f9a4e1",
"md5": "5f1808d656dd650978bba26dffe73728",
"sha256": "9f2eddb68d6b0dafb4a44c3fb1d8acdb5d35ebbc169dfec6a40e380be1941139"
},
"downloads": -1,
"filename": "django_blob_storage-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f1808d656dd650978bba26dffe73728",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 8860,
"upload_time": "2023-05-22T09:50:49",
"upload_time_iso_8601": "2023-05-22T09:50:49.407081Z",
"url": "https://files.pythonhosted.org/packages/6a/13/6526f907c0f54f58d5228e7689b75ae2d569f85c09c67fc56f1eb2f9a4e1/django_blob_storage-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b214f62515414984d88521ef2216c5c94927efb01b4632c5cea9c3fa4af3c40",
"md5": "d5989da4e5347d2bcb87250735050150",
"sha256": "9169cea60749947426fa9f7fea462caf7689764b3e90b15a507bbba5bcdb9a2d"
},
"downloads": -1,
"filename": "django_blob_storage-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "d5989da4e5347d2bcb87250735050150",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 7102,
"upload_time": "2023-05-22T09:50:50",
"upload_time_iso_8601": "2023-05-22T09:50:50.863467Z",
"url": "https://files.pythonhosted.org/packages/2b/21/4f62515414984d88521ef2216c5c94927efb01b4632c5cea9c3fa4af3c40/django_blob_storage-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-22 09:50:50",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "django-blob-storage"
}