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第三方库


热门话题
如何获得@sign,以便在Java代码中键入@override?   java Facebook登录不起作用,我忘了什么?   json如何在java中从MongoDB Atlas获取特定字段?   java如何在Android上的JNI中实现委托/协议(在iOS上)?   java为什么这个循环多次的程序在循环后有一个“println”时需要花费时间?   java无法使组合框正常工作   JavaCQ5。如何为作者显示列表发布者?版本5.5   java我可以要求泛型参数具有泛型参数吗?   JavaOKHTTP无法获取整个JSON   数组Java:用字符减去字符意味着什么?   java为什么Eclipse content assist无法从部分方法名生成方法存根?   java使用线程在Android Studio中一次加载一个多位图   java遍历二叉树并返回一个值