Using Django's collectstatic with boto S3 throws "Error 32: Broken Pipe" after a while Using Django's collectstatic with boto S3 throws "Error 32: Broken Pipe" after a while django django

Using Django's collectstatic with boto S3 throws "Error 32: Broken Pipe" after a while


The key seems to be to specify which AWS Endpoint your bucket is located in. I tried doing this a bunch of different ways, but the solution that finally worked for me was to create a config file for boto as specified in the documentation.

Here are the contents of the config file I created at ~/.boto:

[Credentials]aws_access_key_id = XXXXXXXXXXXXXXXXXXXXaws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[s3]host=s3-us-west-2.amazonaws.com


BenWurth's answer is fine, but if you're like me and don't want to add a config file, you can alternatively use django-storages better maintained cousin "django-storages-redux" and just add an extra env var to settings.py

pip uninstall django-storages (if you have this installed)pip install django-storages-redux

and then in settings.py

AWS_S3_HOST = 'YOUR-AWS-ENDPOINT' #in my case 's3-us-west-2.amazonaws.com'

Then everything should be good.


Old question but to fix this easily i just added the Environment variable "AWS_DEFAULT_REGION" with the region i was using (eg "ap-southeast-2"). This work locally (windows) and in AWS EB