此应用程序允许您轻松地将媒体和静态文件保存到WebDAV存储中

dj-webdav-storage的Python项目详细描述


Travis CI build statusCode coverage percentageLatest version on PyPIWheel StatusSupported Python versions

此应用程序允许您轻松地将媒体和静态文件保存到WebDAV存储中。

依赖关系

安装

  1. 安装软件包
pip install django-webdav-storage
  1. webdav-urlwebdav-public-url中选择webdav服务器url:
WEBDAV_URL='http://webdav.example.com/',WEBDAV_PUBLIC_URL='http://webdav.example.com/'

如果要对WebDAV访问使用HTTP基本授权,可以指定 您的凭证如下:

WEBDAV_URL='http://johndoe:secret@webdav.example.com/'
  1. 将WebDAV存储类设置为默认值:
DEFAULT_FILE_STORAGE='django_webdav_storage.storage.WebDavStorage'
  1. 如果webdav后端不能递归地创建路径(例如nginx can do this,而apache不能),请将webdav\u recursive mkcol变量设置为true
WEBDAV_RECURSIVE_MKCOL=True
  1. 如果使用nginx作为webdav服务器并希望启用存储目录列表,请将webdav列表后端选项设置为:
WEBDAV_LISTING_BACKEND='django_webdav_storage.listing.nginx_autoindex'

应用服务器的nginx配置中必须启用自动索引功能(请参见下面的示例)。小心!允许任何用户使用自动索引可能会导致安全和性能问题。

此外,您还可以使用以下界面指定其他函数的路径:

deflistdir(storage_object,path_string):returndirs_list,files_list

nginx webdav配置示例

# Public readonly media server.
server{listen80;charsetutf-8;server_tokensoff;server_namemedia.example.com;access_log/var/log/nginx/media_access.log;error_log/var/log/nginx/media_error.log;root/usr/share/nginx/webdav;}# WebDAV server
server{listen80;charsetutf-8;server_tokensoff;server_namewebdav.example.com;access_log/var/log/nginx/webdav_access.log;error_log/var/log/nginx/webdav_error.log;root/usr/share/nginx/webdav;client_max_body_size10m;client_body_temp_path/tmp;create_full_put_pathon;autoindexon;dav_methodsPUTDELETEMKCOLCOPYMOVE;dav_accessuser:rwgroup:rall:r;satisfyany;allow127.0.0.1/32;denyall;auth_basic'MyWebDAVarea';auth_basic_user_file/usr/share/nginx/.htpasswd;}

注意事项

  • 在python 3.x中,ContentFile的文本模式内容(不是二进制内容)将导致TypeError到期requests限制

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

推荐PyPI第三方库


热门话题
java JTable无法向新创建的列添加值   java如何调整JEditorPane中编辑区域的大小?   Java通过反射确定未知数组中的数组大小   java Intellij Idea有时无法按其预期的方式构建应用程序   java Swing GUI带有IntelliJ错误“contentPane不能设置为null”从终端编译时   如何将这些通用方法调用从C#转换为Java   在null上找不到java属性或字段“index”   从Java HashMap获取整数值时是否需要调用intValue()方法?   java Android谷歌地图获取相机中的图像块   unix无法捕获JAVA中“who m”命令的输出   java,同时将邮件发送到“收件人”标题“我”中的多个收件人   在java中向链表添加未知数量的节点   无法为Heroku上的discord bot设置java端口   java使用Apache HttpClient进行选项请求   与元素类型“ApplicationName”关联的属性“Application Version”需要java Open quote   Android Studio Java中的两个变量求和