Skip to main content

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. Use PrivateS3Boto3Storage for the field in models.py
from yediemin import PrivateS3Boto3Storage

class Attachment(models.Model):
    file = models.FileField(storage=PrivateS3Boto3Storage())
  1. Upload files to S3 with YedieminFileField. Yediemin requires presigned object url.

Settings

  • YEDIEMIN_HIDDEN_REDIRECT_PATH

Default: yediemin-files. It should be same with location in nginx configuration.

  • YEDIEMIN_AUTHENTICATION_CLASSES

Default: [rest_framework.authentication.SessionAuthentication]

  • YEDIEMIN_EXPIRE_IN

Default: 604800 seconds which is 1 week. This is the maximum limit provided by AWS. Using Query Parameters

Release files for yediemin 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yediemin 0.2.0
File Size Uploaded
yediemin-0.2.0.tar.gz 4.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yediemin 0.2.0
File Interpreter ABI Platform
yediemin-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.5 kB

Release files / yediemin-0.2.0.tar.gz

Download URL yediemin-0.2.0.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c0b49696149916e32c307d03f7924800351c7f932b2d99ae0220df216e0f45b9
BLAKE2b-256 checksum
How to use checksums
94e21a10ba6a712936e1c9c3029b487acd58344152fadf9b4bf1c4ff0e633645
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/2.7.16 Darwin/19.6.0

Release files / yediemin-0.2.0-py3-none-any.whl

Download URL yediemin-0.2.0-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa757c011cbb62cf5b659179747a6e890b1bbe8381b58bc8cc541290488c6b6a
BLAKE2b-256 checksum
How to use checksums
b39258ec50501b50d8246b88e614544b961d0c6bc7885592de674240eed19f81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/2.7.16 Darwin/19.6.0

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page