|
| 1 | +import os |
| 2 | + |
| 3 | +from config.env import BASE_DIR, env, env_to_enum |
| 4 | + |
| 5 | +from styleguide_example.files.enums import FileUploadStrategy, FileUploadStorage |
| 6 | + |
| 7 | + |
| 8 | +FILE_UPLOAD_STRATEGY = env_to_enum( |
| 9 | + FileUploadStrategy, |
| 10 | + env("FILE_UPLOAD_STRATEGY", default="direct") |
| 11 | +) |
| 12 | +FILE_UPLOAD_STORAGE = env_to_enum( |
| 13 | + FileUploadStorage, |
| 14 | + env("FILE_UPLOAD_STORAGE", default="local") |
| 15 | +) |
| 16 | + |
| 17 | +if FILE_UPLOAD_STORAGE == FileUploadStorage.LOCAL: |
| 18 | + MEDIA_ROOT_NAME = "media" |
| 19 | + MEDIA_ROOT = os.path.join(BASE_DIR, MEDIA_ROOT_NAME) |
| 20 | + MEDIA_URL = f"/{MEDIA_ROOT_NAME}/" |
| 21 | + |
| 22 | +if FILE_UPLOAD_STORAGE == FileUploadStorage.S3: |
| 23 | + # Using django-storages |
| 24 | + # https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html |
| 25 | + DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' |
| 26 | + |
| 27 | + AWS_S3_ACCESS_KEY_ID = env("AWS_S3_ACCESS_KEY_ID") |
| 28 | + AWS_S3_SECRET_ACCESS_KEY = env("AWS_S3_SECRET_ACCESS_KEY") |
| 29 | + AWS_STORAGE_BUCKET_NAME = env("AWS_STORAGE_BUCKET_NAME") |
| 30 | + AWS_S3_REGION_NAME = env("AWS_S3_REGION_NAME") |
| 31 | + AWS_S3_SIGNATURE_VERSION = env("AWS_S3_SIGNATURE_VERSION", default="s3v4") |
| 32 | + |
| 33 | + # https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl |
| 34 | + AWS_DEFAULT_ACL = env("AWS_DEFAULT_ACL", default="private") |
| 35 | + |
| 36 | + AWS_PRESIGNED_EXPIRY = env.int("AWS_PRESIGNED_EXPIRY", default=10) # seconds |
0 commit comments