Skip to main content

Django GridFS Storage Engine

Project description

django-gridfs-storage

Simple django GridFS storage engine

Usage:

  1. Install django_gridfs_storage:
    pip install django_gridfs_storage
    
  2. Into settings.py file of your project, add gridfs_storage to INSTALLED_APPS:
    INSTALLED_APPS = [
        ...,
        'gridfs_storage',
    ]
    
  3. 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'
    
  4. 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/

  5. If you wish to use it on all FileField and ImageField set it as the default Storage:
    DEFAULT_FILE_STORAGE = 'gridfs_storage.storage.GridFSStorage'
    
  6. 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:

  1. Python 3.6 or higher.
  2. Django 2.2 or higher.
  3. MongoDB 3.4 or higher.

Tests? None.

We crash production like real men

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-gridfs-storage-0.0.2.tar.gz (4.9 kB view hashes)

Uploaded Source

Built Distribution

django_gridfs_storage-0.0.2-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page