Django S3 Bucket 연결하기 - Tirrilee/TechTalk GitHub Wiki

library install

'storages',
'boto',




nginx configuration

server {
    listen 80;
    server_name api.sinamon.io admin.sinamon.io sinamon.io;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /media {
      proxy_http_version     1.1;
      proxy_set_header       Connection '';
      proxy_set_header       Authorization '';
      proxy_set_header       Host sinamonstaticserve.s3.amazonaws.com;
      proxy_hide_header      x-amz-id-2;
      proxy_hide_header      x-amz-request-id;
      proxy_hide_header      x-amz-meta-server-side-encryption;
      proxy_hide_header      x-amz-server-side-encryption;
      proxy_hide_header      Set-Cookie;
      proxy_ignore_headers   Set-Cookie;
      proxy_intercept_errors on;
      add_header             Cache-Control max-age=31536000;
      proxy_pass             https://sinamonstaticserve.s3.amazonaws.com/media;
    }

    location /static {
      proxy_http_version     1.1;
      proxy_set_header       Connection '';
      proxy_set_header       Authorization '';
      proxy_set_header       Host sinamonstaticserve.s3.amazonaws.com;
      proxy_hide_header      x-amz-id-2;
      proxy_hide_header      x-amz-request-id;
      proxy_hide_header      x-amz-meta-server-side-encryption;
      proxy_hide_header      x-amz-server-side-encryption;
      proxy_hide_header      Set-Cookie;
      proxy_ignore_headers   Set-Cookie;
      proxy_intercept_errors on;
      add_header             Cache-Control max-age=31536000;
      proxy_pass             https://sinamonstaticserve.s3.amazonaws.com/static;
    }

    location / {
        include        uwsgi_params;
        uwsgi_pass     unix:/tmp/sinabro.sock;
    }
}




S3 AWS Setting

settings.py

# AWS Setting
AWS_REGION = 'ap-northeast-2'
AWS_STORAGE_BUCKET_NAME = 'sinamonstaticserve'
AWS_QUERYSTRING_AUTH = False
AWS_S3_HOST = 's3.%s.amazonaws.com' % AWS_REGION
AWS_ACCESS_KEY_ID = 'AKIAJ4J26QJ5AXHR7DPA'
AWS_SECRET_ACCESS_KEY = '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'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_DEFAULT_ACL = None

# Static Setting
STATIC_URL = '/static/'
#Media Setting
MEDIA_URL = '/media/'

DEFAULT_FILE_STORAGE = 'sinabro.settings.storage.MediaStorage'
STATICFILES_STORAGE = 'sinabro.settings.storage.StaticStorage'

MEDIAFILES_LOCATION = 'media'
STATICFILES_LOCATION = 'static'




sinabro.settings.storage.py

from django.conf import settings
from storages.backends.s3boto import S3BotoStorage


class MediaStorage(S3BotoStorage):
    location = settings.MEDIAFILES_LOCATION

class StaticStorage(S3BotoStorage):
    location = settings.STATICFILES_LOCATION
⚠️ **GitHub.com Fallback** ⚠️