使用Amazon S3通过Django保存静态文件。 Collecstatic不会将文件上传到S3

时间:2019-04-02 18:15:07

标签: django heroku amazon-s3

我正在为我的大学开发一个项目,并且正在使用Django和Heroku。但是,Heroku不会保存我的静态文件,因此,建议我使用Amazon S3存储静态文件并上传生成的pdf。我试图让我的应用程序使用collectstatic上传所有静态文件,但是每次在我项目的staticfiles文件夹中生成它们时,我都希望将它们上传到S3。

我尝试遵循一些指南,例如:

尝试了所有可能的方法来配置设置文件,但是没有任何作用。

这是settings.py文件的方式:

AWS_ACCESS_KEY_ID = 'Access key'
AWS_SECRET_ACCESS_KEY = 'secret access key'
AWS_STORAGE_BUCKET_NAME = 'name of the bucket'
AWS_DEFAULT_ACL = 'public-read'

AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'}

AWS_LOCATION = 'static'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

这是我已安装的应用程序。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'storages',
    "bootstrap4",
]

我还安装了boto3和django-storages库

当我进行静电收集时,结果是:

You have requested to collect static files at the destination
location as specified in your settings:

   my project folder

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel:  yes

0 static files copied to 'my project folder', 163 unmodified, 373 post-processed.

Process finished with exit code 0

当代码告诉它将文件上传到s3时,django为什么将文件保存在我的文件夹中。

0 个答案:

没有答案