Я использую django-oscar
и хотел обслуживать мои статические файлы с помощью AWS S3.Чтобы сконфигурировать мое ведро s3, я создал модуль под названием aws
с файлами conf.py
и utils.py
.
На моем веб-сайте, когда я загружаю изображение в продукт, оно хорошо загружается с правильным путемк моей корзине aws s3, но затем через очень короткое время путь меняется с https://mybucketname.s3.amazonaws.com/media/cache/..../image.jpg
на https://mybucketname.s3.amazonaws.com/cache/..../image.jpg
Изображения находятся в папке media
в моей корзине.
I 'Я размещаю свое веб-приложение на heroku, статические файлы обслуживаются правильно, но проблема возникает в папке media.
Вот мой код -
utils.py file
from storages.backends.s3boto3 import S3Boto3Storage
StaticRootS3BotoStorage = lambda: S3Boto3Storage(location='static')
MediaRootS3BotoStorage = lambda: S3Boto3Storage(location='media')
как static
и media
- это папки на моем s3-бакете
conf.py
import datetime
AWS_ACCESS_KEY_ID = "xxx"
AWS_SECRET_ACCESS_KEY = "yyy"
AWS_PRELOAD_METADATA = True
AWS_QUERYSTRING_AUTH = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE =
'myproject.aws.utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE =
'myproject.aws.utils.StaticRootS3BotoStorage'
AWS_STORAGE_BUCKET_NAME = 'mybucket-name'
S3DIRECT_REGION = 'us-east-2'
S3_URL = '//%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
MEDIA_URL = '//%s.s3.amazonaws.com/media/' % AWS_STORAGE_BUCKET_NAME
MEDIA_ROOT = MEDIA_URL
STATIC_URL = S3_URL + 'static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
two_months = datetime.timedelta(days=61)
date_two_months_later = datetime.date.today() + two_months
expires = date_two_months_later.strftime("%A, %d %B %Y 20:00:00
GMT")
AWS_HEADERS = {
'Expires': expires,
'Cache-Control': 'max-age=%d' %
(int(two_months.total_seconds()), ),
}
и мой settings.py Я добавил это
from myproject.aws.conf import *
Что я должен сделать, чтобы решить эту проблему?