首页 > 解决方案 > 使用 heroku 和 MinIO 的无效端点错误

问题描述

我有一个 django 网站,我用 heroku 发布了它。
这些文件存储在带有 MinIO 的本地 docker 容器中。我正在使用 django-storages 连接到 MinIO 存储,因为它支持 AWS S3,
AWS_S3_ENDPOINT_URL = "(Computer IP):9000/"。
在我的本地计算机上,它可以正常工作(计算机 IP):9000/。
当我在我的计算机上使用 localhost 时,它可以正常工作。
但是在heroku中说无效的端点。
我已经端口转发了 9000 和 9001 端口并允许它们通过防火墙。
我做错了什么?

错误日志

/admin/users/profile/add/ 处的 ValueError

Invalid endpoint: (Computer IP):9000/

Request Method:     POST
Request URL:    (Heroku IP)
Django Version:     3.2.5
Exception Type:     ValueError
Exception Value:    

Invalid endpoint: (Computer IP):9000/

Exception Location:     /app/.heroku/python/lib/python3.9/site-packages/botocore/endpoint.py, line 287, in create_endpoint
Python Executable:  /app/.heroku/python/bin/python
Python Version:     3.9.6
Python Path:    

['/app/.heroku/python/bin',
 '/app',
 '/app/.heroku/python/lib/python39.zip',
 '/app/.heroku/python/lib/python3.9',
 '/app/.heroku/python/lib/python3.9/lib-dynload',
 '/app/.heroku/python/lib/python3.9/site-packages']

Server time:    Mon, 30 Aug 2021 09:37:06 +0000

Settings.py - AWS 信息

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

AWS_S3_ENDPOINT_URL = "(ComputerIP):9000/"

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

谢谢!

标签: pythondjangoherokuminiopython-django-storages

解决方案


推荐阅读