此应用程序允许您轻松地将媒体和静态文件保存到WebDAV存储中
django-webdav-storage的Python项目详细描述
此应用程序允许您轻松地将媒体和静态文件保存到WebDAV存储中。
依赖关系
安装
- 安装软件包
pip install django-webdav-storage
- 在webdav-url和webdav-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/'
- 将WebDAV存储类设置为默认值:
DEFAULT_FILE_STORAGE='django_webdav_storage.storage.WebDavStorage'
- 如果webdav后端不能递归地创建路径(例如nginx can do this,而apache不能),请将webdav\u recursive mkcol变量设置为true:
WEBDAV_RECURSIVE_MKCOL=True
- 如果使用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限制