Django的CollectStatic的并行文件复制。

django-collectfaster的Python项目详细描述


Latest VersionDownloads

这个包用一个--faster参数扩展了django的collectstatic管理命令,该参数激活 并行文件复制。速度的提高对于像s3这样的远程存储后端特别有帮助。

快速启动

安装Django CollectFaster:

pip install django-collectfaster

settings.py中配置已安装的应用程序,并确保collectfasterdjango.contrib.staticfiles之前列出:

INSTALLED_APPS = (
    ...,
    'collectfaster',
    'django.contrib.staticfiles',
    'storages',
    ...,
)

如果将s3与django-storages一起使用,则可能已经在settings.py:中配置了此功能

AWS_S3_HOST = 's3-eu-west-1.amazonaws.com'
AWS_STORAGE_BUCKET_NAME = '<your_aws_bucket_name>'

settings.py

中设置静态和媒体文件的存储后端
STATICFILES_STORAGE = 'collectfaster.backends.boto.S3StaticStorage'
DEFAULT_FILE_STORAGE = 'collectfaster.backends.boto.S3MediaStorage'
# STATICFILES_STORAGE = 'collectfaster.backends.boto3.S3Boto3StaticStorage'
# DEFAULT_FILE_STORAGE = 'collectfaster.backends.boto3.S3Boto3MediaStorage'

您应该将S3上的静态和媒体文件分割到不同的文件夹中,并在settings.py

中进行配置
STATICFILES_LOCATION = 'static'
MEDIAFILES_LOCATION = 'media'

至少在生产设置中设置STATIC_URL

STATIC_URL = 'https://%s/%s/%s/' % (AWS_S3_HOST, AWS_STORAGE_BUCKET_NAME, STATICFILES_LOCATION)

用法

并行收集静态文件:

python manage.py collectstatic --faster

将工人数量设置为30:

python manage.py collectstatic --faster --workers=30

使用multiprocessing而不是gevent

python manage.py collectstatic --faster --use-multiprocessing

学分

用于呈现此包的工具:

历史记录

0.1.2(2017-04-07)

  • 添加对BOTO3和多处理的支持,而不是GEvent
  • 将后端移动到子模块(请更改设置变量staticfiles_storagedefault_file_storage

0.1.1(2016-08-08)

  • 而不是使用django storages而不是来自django storages redux的不推荐使用的fork。

0.1.0(2016-05-19)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java匹配正则表达式并提取组oneliner   同步嵌套映射和集合(Java)   使用ApachePOI将结果集从Java数据库导出到Excel   java创建一个方法,其中变量是jTable   java如何创建带有嵌套循环的半菱形形状?   C/C++和Java的调试器   Java API中的生成器模式示例?   java代码分支应该应用什么样的单元测试组合?   如何求算法的时间复杂度   java如果我想代理所有服务调用,以便在不显式调用记录器的情况下正确记录它们,我有什么选择?   RabbitMQ java客户端到多个队列的连接   出现第一个空格之前的java掩码字符串   java使用子类对象修改其超类对象中的受保护属性   java如何使用PagerSlidingTabStrip删除选项卡?   java在禁用按钮后刷新整数值