Skip to main content

Bulletproof attachment serving for Django Rest Framework.

Project description

Yediemin

A package for bulletproof attachment serving in Django Rest Framework.

Getting Started

Requirements

  • Nginx
  • Django Rest Framework
  • Session Authentication
  • Django Storages (S3)

Installation Steps

  1. Install package from PyPi.
pip install yediemin
  1. Add the view to urls.py
from yediemin import YedieminView

urlpatterns = [
    re_path(r'^yediemin/(?P<file_name>\S+)/$', YedieminView.as_view(), name='yediemin'),
]
  1. Configure Nginx. Place the configuration below under your server.
location /yediemin-files/ {
            internal;
            resolver 8.8.8.8;
            set $redirect_uri "$upstream_http_redirect_uri";

            proxy_buffering off;
            proxy_pass $redirect_uri;
}
  1. Use YedieminFileField in serializer for FileField.
from yediemin import YedieminFileField

class AttachmentSerializer(serializers.ModelSerializer):
    file = YedieminFileField()

    class Meta:
        model = Attachment
        fields = (
            "id",
            "file",
        )
  1. Upload files to S3 as private. Yediemin requires presigned object url.
# settings.py

AWS_QUERYSTRING_AUTH = True

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

yediemin-0.1.2.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

yediemin-0.1.2-py3-none-any.whl (4.2 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