|
46 | 46 | AZURE_STORAGE_KEY=(str, None), |
47 | 47 | AZURE_STORAGE_TOKEN_CREDENTIAL=(str, None), |
48 | 48 | AZURE_STORAGE_MANAGED_IDENTITY=(bool, False), |
| 49 | + # -- S3 storage |
| 50 | + AWS_S3_ENABLED=(bool, False), |
| 51 | + AWS_S3_ENDPOINT_URL=(str, None), |
| 52 | + AWS_S3_ACCESS_KEY_ID=str, |
| 53 | + AWS_S3_SECRET_ACCESS_KEY=str, |
| 54 | + AWS_S3_REGION_NAME=str, |
| 55 | + AWS_S3_MEDIA_BUCKET_NAME=str, |
| 56 | + AWS_S3_STATIC_BUCKET_NAME=str, |
49 | 57 | # -- Filesystem (default) XXX: Don't use for production |
50 | 58 | DJANGO_MEDIA_ROOT=(str, os.path.join(BASE_DIR, "media")), |
51 | 59 | DJANGO_STATIC_ROOT=(str, os.path.join(BASE_DIR, "static")), |
@@ -500,6 +508,38 @@ def parse_domain(*env_keys: str) -> str: |
500 | 508 | # }, |
501 | 509 | # }, |
502 | 510 | } |
| 511 | + |
| 512 | +# NOTE: This is used for instances outside azure environment |
| 513 | +elif env("AWS_S3_ENABLED"): |
| 514 | + AWS_S3_CONFIG_OPTIONS = { |
| 515 | + "endpoint_url": env("AWS_S3_ENDPOINT_URL"), |
| 516 | + "access_key": env("AWS_S3_ACCESS_KEY_ID"), |
| 517 | + "secret_key": env("AWS_S3_SECRET_ACCESS_KEY"), |
| 518 | + "region_name": env("AWS_S3_REGION_NAME"), |
| 519 | + } |
| 520 | + |
| 521 | + STORAGES = { |
| 522 | + "default": { |
| 523 | + "BACKEND": "storages.backends.s3boto3.S3Boto3Storage", |
| 524 | + "OPTIONS": { |
| 525 | + **AWS_S3_CONFIG_OPTIONS, |
| 526 | + "bucket_name": env("AWS_S3_MEDIA_BUCKET_NAME"), |
| 527 | + "location": "media/", |
| 528 | + "file_overwrite": False, |
| 529 | + }, |
| 530 | + }, |
| 531 | + "staticfiles": { |
| 532 | + "BACKEND": "storages.backends.s3boto3.S3Boto3Storage", |
| 533 | + "OPTIONS": { |
| 534 | + **AWS_S3_CONFIG_OPTIONS, |
| 535 | + "bucket_name": env("AWS_S3_STATIC_BUCKET_NAME"), |
| 536 | + "querystring_auth": False, |
| 537 | + "location": "static/", |
| 538 | + "file_overwrite": True, |
| 539 | + }, |
| 540 | + }, |
| 541 | + } |
| 542 | + |
503 | 543 | else: |
504 | 544 | # Filesystem |
505 | 545 | MEDIA_ROOT = env("DJANGO_MEDIA_ROOT") |
|
0 commit comments