I just revisited a problem getting S3 and collectstatic to play nicely via django-storages.
I spent an hour wondering what had changed in django or django-storages that started to force the collectstatic command to always upload all images.
I did a line by line code comparison between my two django and storages installations and couldn’t find anything odd.
I started to google more.
I ended up on this site: http://c4urself.posterous.com/djangos-collectstatic-with-s3boto which actually linked to a few of my original posts.
For the record this happens to me on a daily basis (my memory sucks) but this was rather unexpected in the vastness of the world wide internets.
You MUST install python-dateutil==1.5
Collectstatic will silently fail trying to detect the modified time of the S3 files, and consequently will always upload a new file. Since there was no error, I had no idea something was failing until I read the above post which pointed to the specific function (mentioned by me originally, apparently).
If your collectstatic command is always uploading all files, make sure you have python-dateutil==1.5 installed!