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
- Install package from PyPi.
pip install yediemin
- Add the view to
urls.py
from yediemin import YedieminView
urlpatterns = [
re_path(r'^yediemin/(?P<file_name>\S+)/$', YedieminView.as_view(), name='yediemin'),
]
- 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;
}
- Use
YedieminFileField
in serializer forFileField
.
from yediemin import YedieminFileField
class AttachmentSerializer(serializers.ModelSerializer):
file = YedieminFileField()
class Meta:
model = Attachment
fields = (
"id",
"file",
)
- Upload files to S3 as private. Yediemin requires presigned object url.
# settings.py
AWS_QUERYSTRING_AUTH = True
Settings
YEDIEMIN_HIDDEN_REDIRECT_PATH
Default: yediemin-files
.
It should be same with location in nginx configuration.
YEDIEMIN_AUTHENTICATION_CLASS
Default: rest_framework.authentication.SessionAuthentication
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.3.tar.gz
(4.1 kB
view hashes)