【问题标题】:Upload Django static files to Amazon S3将 Django 静态文件上传到 Amazon S3
【发布时间】:2016-11-22 02:15:09
【问题描述】:

我正在尝试找到一种将我的 Django 静态文件上传到 Amazon S3 存储桶的方法。

在我的settings.py 我有:

AWS_STORAGE_BUCKET_NAME = 'XXXXX'
AWS_ACCESS_KEY_ID = 'AXXXXXA'
AWS_SECRET_ACCESS_KEY = 'DXXXXXXXXX6'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = 'custom_storages.StaticStorage'
STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, STATICFILES_LOCATION)

我使用 EB 控制面板上传功能将我的 Django 代码作为 zip 文件上传到 AWS EB 实例。

确保将我的静态文件(在 static/ 目录中)复制到 S3 存储桶的推荐方法是什么?

【问题讨论】:

标签: django amazon-s3


【解决方案1】:

我会尝试做这样的设置:

settings.py:

STATICFILES_DIRS = (
    os.path.join('path', 'to_your', 'files'),
)
AWS_ACCESS_KEY_ID = 'AXXXXXA'
AWS_SECRET_ACCESS_KEY = 'DXXXXXXXXX6'
AWS_STORAGE_BUCKET_NAME = 'XXXXX'
STATICFILES_STORAGE = 'proj.s3utils.StaticRootS3BotoStorage'  # static files
STATIC_S3_PATH = 'media/'
DEFAULT_FILE_STORAGE = 'proj.s3utils.MediaRootS3BotoStorage'  # media uploads
DEFAULT_S3_PATH = 'static/'
S3_URL = '//{}.s3.amazonaws.com/'.format(AWS_STORAGE_BUCKET_NAME)
MEDIA_URL = S3_URL + STATIC_S3_PATH
STATIC_URL = S3_URL + DEFAULT_S3_PATH
MEDIA_ROOT = '/home/ubuntu/domain.com/proj/static/media'  # assuming this is your layout
STATIC_ROOT = '/home/ubuntu/domain.com/proj/static/static'  # assuming this is your layout
AWS_PRELOAD_METADATA = True
AWS_S3_SECURE_URLS = True
date_three_months_later = datetime.date.today() + datetime.timedelta(3 * 365 / 12)
expires = date_three_months_later.strftime('%A, %d %B %Y 20:00:00 EST')
AWS_HEADERS = {
    'Expires': expires,
    'Cache-Control': 'max-age=31536000',  # 365 days
}

s3utils.py: 确保安装 django-storagesboto

from storages.backends.s3boto import S3BotoStorage

StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')

这应该确保所有内容都进入您的 S3 存储桶。

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 1970-01-01
    • 2010-10-14
    • 2013-01-24
    • 2019-12-10
    • 2013-09-09
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多