django-gridfs-storage 0.0.2

Creator: danarutscher

Last updated:

Add to Cart

Description:

djangogridfsstorage 0.0.2

django-gridfs-storage
Simple django GridFS storage engine
Usage:


Install django_gridfs_storage:
pip install django_gridfs_storage



Into settings.py file of your project, add gridfs_storage to INSTALLED_APPS:
INSTALLED_APPS = [
...,
'gridfs_storage',
]



add the following variables to your settings:
# defaults to default local mongodb server
DEFAULT_GRIDFS_URL = 'mongodb://127.0.0.1:27017'
# if set to None, it will refuse to serve files and raise an Exception
DEFAULT_GRIDFS_SERVE_URL = None
DEFAULT_GRIDFS_COLLECTION = 'storage'



To serve files through django (not recommended) you can use this in urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
...,
path('media/', include('gridfs_storage.urls')),
]

and set the DEFAULT_GRIDFS_SERVE_URL to the prefix you specified in the path. in this case its /media/


If you wish to use it on all FileField and ImageField set it as the default Storage:
DEFAULT_FILE_STORAGE = 'gridfs_storage.storage.GridFSStorage'



If you wish to use on individual field bases set it as the field storage:
from django.db import models
from gridfs_storage.storage import GridFSStorage

class SampleModel(models.Model):
attachment = models.FileField(storage=GridFSStorage())
first_pic = models.ImageField(storage=GridFSStorage(location='sample/images'))

# To store in a different collection than "storage"
another_pic = models.ImageField(storage=GridFSStorage(collection='image_storage'))

# Serve through custom cdn connected to the same gridfs or similar, the limit is the sky :)
served_outside = models.ImageField(storage=GridFSStorage(base_url='https://img.cdn/serve/'))



Requirements:

Python 3.6 or higher.
Django 2.2 or higher.
MongoDB 3.4 or higher.

Tests? None.
We crash production like real men

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.