Heroku + S3 AWS + Django! = Нет изображений - PullRequest
0 голосов
/ 24 мая 2019

Я пытался вывести свое приложение в Интернет, но, похоже, файлы изображений не отображаются.Может быть, вы можете помочь?В S3 AWS мне нужны изображения в моем ведре, но все равно ничего не появляется.Хотя, когда я пытаюсь открыть изображение на веб-сайте, меня отправляют на сайт Amazon.И я получаю это сообщение:

InvalidRequest Механизм авторизации, который вы предоставили, не поддерживается.Пожалуйста, используйте AWS4-HMAC-SHA256.8CF0C70490DEFEE2 dtBKlPBbw5L6pM6mGyd4YaqC4amay / c2tccfhhStjujVGG2qdrvQwD6vGloJZWQle9A5Cwr3Rws =

Here is my settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_TMP = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

os.makedirs(STATIC_TMP, exist_ok=True)

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

AWS_ACCESS_KEY_ID = "####"
AWS_SECRET_ACCESS_KEY="####"
AWS_STORAGE_BUCKET_NAME="####"

AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

django_heroku.settings(locals())

1 Ответ

1 голос
/ 24 мая 2019

Ваш MEDIA_URL неверен.

Попробуйте что-то вроде этого (я предполагаю, что вы хотите использовать для статических ресурсов и медиа):

AWS_AUTO_CREATE_BUCKET = True
AWS_STORAGE_BUCKET_NAME = "my_bucket"

DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
STATICFILES_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"

STATIC_LOCATION = "resources/"
MEDIA_LOCATION = "media/"

AWS_BUCKET_ACL = "public-read"
AWS_QUERYSTRING_AUTH = False
AWS_S3_REGION_NAME = "your-bucket-region"

AWS_S3_CUSTOM_DOMAIN = f"{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com"


STATIC_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}/{STATIC_LOCATION}"
MEDIA_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}/{MEDIA_LOCATION}/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...