我正在尝试部署一个包含文本和少量图像的个人网站(基于python django的框架)。有人可以告诉他们部署到heroku与AWS相比有什么优点和缺点吗?
PS:我已经将其部署在AWS上,但是图像未加载。因此,我正在考虑使用Heroku,但不确定是否应该使用Heroku或AWS会更稳定。
我正在尝试部署一个包含文本和少量图像的个人网站(基于python django的框架)。有人可以告诉他们部署到heroku与AWS相比有什么优点和缺点吗?
PS:我已经将其部署在AWS上,但是图像未加载。因此,我正在考虑使用Heroku,但不确定是否应该使用Heroku或AWS会更稳定。
AWS需要做更多的工作,但是更好...
要使用图像,您将需要在Amazon S3中创建存储桶,这是我的设置,可以在Amazon S3中使用媒体和静态文件:
if not DEBUG:
AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.getenv('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = '{}.s3.amazonaws.com'.format(AWS_STORAGE_BUCKET_NAME)
AWS_DEFAULT_ACL = 'public-read'
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'}
AWS_STATIC_LOCATION = 'static'
AWS_MEDIA_LOCATION = 'media'
STATICFILES_STORAGE = 'name_of_your_project.storage_backends.StaticStorage'
STATIC_URL = 'https://{}/{}/'.format(AWS_S3_CUSTOM_DOMAIN,AWS_STATIC_LOCATION)
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder',)
CKEDITOR_BASEPATH = "{}/ckeditor/ckeditor".format(STATIC_URL)
MEDIA_URL = 'https://{}/{}/'.format(AWS_S3_CUSTOM_DOMAIN,AWS_MEDIA_LOCATION)
DEFAULT_FILE_STORAGE = 'name_of_your_project.storage_backends.MediaStorage'
在settings.py的同一文件夹中创建一个名为storage_backends.py的文件:
from storages.backends.s3boto3 import S3Boto3Storage
from django.conf import settings
class StaticStorage(S3Boto3Storage):
location = settings.AWS_STATIC_LOCATION
class MediaStorage(S3Boto3Storage):
location = settings.AWS_MEDIA_LOCATION
file_overwrite = False
您将需要安装boto3和django-storages:
pip install boto3
pip install django-storages