使用django-storages和s3时出现[Errno 32] Broken pipe错误

2 投票
1 回答
601 浏览
提问于 2025-04-18 06:45

我在使用django-storages和s3的时候遇到了一些麻烦。用boto的时候一切都能正常工作(可以创建和读取文件),所以问题和我的凭证无关。

在settings.py文件中,我有以下这些设置:

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '...'
AWS_SECRET_ACCESS_KEY = '...'
AWS_STORAGE_BUCKET_NAME = 'sff-dev'

我有以下这个模型:

class Document(models.Model):
    title = models.CharField(max_length=100)
    document = models.FileField(upload_to='documents')

我不太确定upload_to应该用什么,如果有的话。我也试过用'/'。

我尝试了各种方法,比如把AWS_QUERYSTRING_AUTH设置为False,AWS_S3_SECURE_URLS也设置为False,但都没有效果。

1 个回答

1

我也在研究这个问题。最终我在这些答案中找到了我的解决办法。

简单来说,我把使用的库从django-storages换成了django-storages-redux,并在我的settings.py文件中添加了以下内容:

AWS_S3_HOST = "s3-us-west-2.amazonaws.com"

撰写回答