我正在为我的大学开发一个项目,并且正在使用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为什么将文件保存在我的文件夹中。