I've deployed a bare-bones Django app on Heroku. When I run collectstatic
to upload the static files to S3, I get the following error:
Traceback (most recent call last): File "appname/manage.py", line 11, in execute_from_command_line(sys.argv) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv self.execute(*args, **options.__dict__) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute output = self.handle(*args, **options) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 415, in handle return self.handle_noargs(**options) File "/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py", line 135, in handle_noargs collected = self.collect() File "/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py", line 33, in collect ret = super(Command, self).collect(*args, **kwargs) File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 111, in collect handler(path, prefixed_path, storage) File "/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py", line 92, in copy_file self.destroy_lookup(prefixed_path) File "/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py", line 61, in destroy_lookup cache.delete(self.get_cache_key(path)) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/cache/backends/memcached.py", line 86, in delete self._cache.delete(key) _pylibmc.MemcachedError: error 47 from memcached_delete(:1:collectfast_asset_dc44a7965f7): SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 127.0.0.1:11211 -> libmemcached/connect.cc:592
The following env variables are set on heroku:
BUILDPACK_URL: DATABASE_URL: DJANGO_AWS_ACCESS_KEY_ID: DJANGO_AWS_SECRET_ACCESS_KEY: DJANGO_AWS_STORAGE_BUCKET_NAME: DJANGO_CONFIGURATION: DJANGO_SECRET_KEY: HEROKU_POSTGRESQL_CRIMSON_URL: MEMCACHIER_PASSWORD: MEMCACHIER_SERVERS: MEMCACHIER_USERNAME: PGBACKUPS_URL: SENDGRID_PASSWORD: SENDGRID_USERNAME:
I have been struggling with this for a few days. Yesterday, I realized that one of the env variables was had a misspelled duplicate. After deleting the misspelled env variable, the collectstatic
command worked perfectly, and the files were uploaded to S3. Now I'm working with another app and cannot get it to work.
An empty S3 bucket with the same name already exists. I have tried both user-specific and account-wide AWS credentials, but neither worked.