【发布时间】:2020-05-17 19:20:08
【问题描述】:
我有一个 ImageField,我也在使用 AWS S3。
每当我在本地上传图片时,它都能完美运行,我可以上传图片并查看它。
但是,当我尝试在 heroku 上上传图片时,出现此错误:
expected string or bytes-like object
对于我的 models.py 中的 ImageField,它是:
image = models.ImageField(blank=False)
在 settings.py 我有:
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_S3_REGION_NAME = 'the location im using'
django_heroku.settings(locals())
所以不太确定如何修复它,以便它像在本地一样在 heroku 中工作。
谢谢
【问题讨论】:
-
您看到任何错误吗?你的
requirements.txt(或Pipfile)中有django-storages(有要求)吗? -
是的,我的 requirements.txt 中有 django-storages==1.8
-
当你看到那个错误时你在做什么?是在您尝试上传新文件时吗?当您尝试在模板中呈现它时?还有什么?请阅读How to Ask。
-
我进行了适当的编辑,它适用于我上传图片的任何时候。
-
@user8802333 你能添加错误/异常的完整堆栈跟踪吗?目前我的最佳猜测是:用于设置某些设置的环境变量之一不存在(访问密钥、秘密密钥、存储桶)。
标签: django python-3.x heroku amazon-s3