更快的替代manage.py collectstatic(w/s3boto存储后端)将静态文件同步到s3?

Ben*_*rts 12 django amazon-s3 boto django-staticfiles

我一直在使用s3boto的S3BotoStorage作为我的静态文件后端,并使用./manage.py collectstatic将文件同步到我的aws s3存储桶(暂存和生产).它工作正常.但是它很慢.除了我自己的静态文件(只有几个)和django admin之外,我还有一些包含许多静态文件的第三方软件包(grappelli,django-redactor).每次运行它时,collectstatic可能需要15分钟,具体取决于我的互联网连接.对于我正在与我的临时存储桶同步并且事情不太正确的情况,我必须调整一些内容并重新同步,这是一个重要的时间杀手.是否有任何好的,快速的,可编写脚本的替代方法,用于将静态文件同步到s3?

ant*_*tam 39

我编写了一个基于djangosnippet的可插入Django应用程序,它缓存远程文件的ETag并比较chached校验和,而不是每次执行查找.我每次通话大约需要1分30秒到10分左右才能manage.py collectstatic获得几百个静态文件.在这里查看:https://github.com/antonagestam/collectfast

  • 刚看到这个.测试了它,从10-15分钟到2:45.要为你设置赏金,因为这将是一个巨大的生产力提升.感谢您抽出宝贵时间回答并创建了collectfast插件!真棒. (2认同)

oji*_*jii 6

设置AWS_PRELOAD_METADATATrue在您的设置中,以便在同步之前预先加载s3上的所有文件,并且仅同步那些尚未存在(或已更改)的文件.

  • 不幸的是,我发现启用此设置没有明显的区别. (2认同)
  • 这已[已被弃用](https://github.com/jschneier/django-storages/pull/553) (2认同)