【问题标题】:Problem uploading images using ImageField in Django on Heroku在 Heroku 上使用 Django 中的 ImageField 上传图像时出现问题
【发布时间】: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


【解决方案1】:

我发现了我的问题。

我没有将我的环境变量放入 heroku(我正在使用的托管服务)中。这就是它在本地工作但在 heroku 上不起作用的原因。

在终端中,我只需要对所有相关的环境变量执行此操作:

heroku config:set GITHUB_USERNAME="joesmith"

更多信息here

【讨论】:

    猜你喜欢
    • 2018-11-27
    • 2016-02-10
    • 1970-01-01
    • 2019-09-04
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多