
Security News
Open Source Maintainers Demand Ability to Block Copilot-Generated Issues and PRs
Open source maintainers are urging GitHub to let them block Copilot from submitting AI-generated issues and pull requests to their repositories.
django-database-files-3000
Advanced tools
A storage system for Django that stores uploaded files in both the database and file system.
This is a storage system for Django that stores uploaded files in the database. Files can be served from the database (usually a bad idea), the file system, or a CDN.
Simply install via pip with:
pip install django-database-files-3000
In settings.py
, add database_files
to your INSTALLED_APPS
and add
this line:
DEFAULT_FILE_STORAGE = 'database_files.storage.DatabaseStorage'
Note, the upload_to
parameter is still used to synchronize the files stored
in the database with those on the file system, so new and existing fields
should still have a value that makes sense from your base media directory.
If you're using South, the initial model migrations will scan through all
existing models for FileFields
or ImageFields
and will automatically
load them into the database.
If for any reason you want to re-run this bulk import task, run:
python manage.py database_files_load
Additionally, if you want to export all files in the database back to the file system, run:
python manage.py database_files_dump
Note, that when a field referencing a file is cleared, the corresponding file in the database and on the file system will not be automatically deleted. To delete all files in the database and file system not referenced by any model fields, run:
python manage.py database_files_cleanup
DB_FILES_AUTO_EXPORT_DB_TO_FS
= True
|False
(default True
)
If true, when a file is uploaded or read from the database, a copy will be exported to your media directory corresponding to the FileField's upload_to path, just as it would with the default Django file storage.
If false, the file will only exist in the database.
DATABASE_FILES_URL_METHOD
= URL_METHOD_1
|URL_METHOD_2
(default URL_METHOD_1
)
Defines the method to use when rendering the web-accessible URL for a file.
If URL_METHOD_1
, assumes all files have been exported to the filesystem and
uses the path corresponding to your settings.MEDIA_URL
.
If URL_METHOD_2
, uses the URL bound to the database_file
view
to dynamically lookup and serve files from the filesystem or database.
In this case, you will also need to updates your urls.py
to include the view
that serves the files:
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
# Serve Database Files directly
url(r'', include('database_files.urls')),
)
Tests require the Python development headers to be installed, which you can install on Ubuntu with:
sudo apt-get install python-dev python3-dev python3.4-dev
To run unittests across multiple Python versions, install:
sudo apt-get install python3.4-minimal python3.4-dev python3.5-minimal python3.5-dev
Note, you may need to enable an additional repository to provide these packages.
To run all tests:
export TESTNAME=; tox
To run tests for a specific environment (e.g. Python 2.7 with Django 1.4):
export TESTNAME=; tox -e py27-django15
To run a specific test:
export TESTNAME=.test_adding_file; tox -e py27-django15
To build and deploy a versioned package to PyPI, verify all unittests are passing, and then run:
python setup.py sdist
python setup.py sdist upload
FAQs
A storage system for Django that stores uploaded files in both the database and file system.
We found that django-database-files-3000 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Open source maintainers are urging GitHub to let them block Copilot from submitting AI-generated issues and pull requests to their repositories.
Research
Security News
Malicious Koishi plugin silently exfiltrates messages with hex strings to a hardcoded QQ account, exposing secrets in chatbots across platforms.
Research
Security News
Malicious PyPI checkers validate stolen emails against TikTok and Instagram APIs, enabling targeted account attacks and dark web credential sales.