目录列表和图片库的Web界面

pycbox的Python项目详细描述


显示目录列表或缩略图库的简单Web界面 files/子目录中的文件或图像。如果 文件夹对所有人都有写权限。

一个例子可以在pix.coldfix.eu上看到。

此repo是对picboxphp应用程序的python重写。

用法

您可以从 ~/Pictures目录如下:

pip install pycbox --user
pycbox -w ~/Pictures

为了允许在所有网络接口上进行网络访问,您还需要 添加--host 0.0.0.0选项,例如:

pycbox -w ~/Pictures -h 0.0.0.0

或者,您可以在不安装git签出的情况下运行pycbox。 尽管在这种情况下,您仍然需要按如下方式安装依赖项:

pip install -r requirements.txt --user
./bin/pycbox -w ~/Pictures

但是,不建议在命令行中运行这样的pycbox 为了部署!从flask documentation

While lightweight and easy to use, Flask’s built-in server is not suitable for production as it doesn’t scale well and by default serves only one request at a time. Some of the options available for properly running Flask in production are documented here.

更复杂的服务器可以使用twisted运行:

twistd --nodaemon --logfile=- web --port=tcp:5000 --wsgi=pycbox.app

实际上,推荐的方法是使用docker,请参见Deployment

配置

如果存在,^ {TT4}$将从ActiveDirectory加载。这个 配置文件可能成为必需的,因此您应该始终复制并调整 附带的示例配置:

cp config.example.yml config.yml

可以通过 PYCBOX_CONFIG环境变量,例如:

PYCBOX_CONFIG=/path/to/alt_config.yml python pycbox.py
PYCBOX_CONFIG=/path/to/alt_config.yml twistd web --wsgi=pycbox.app

展开

推荐的方法是通过docker运行pycbox。图像可以建立 运行如下:

docker build . -t pycbox
docker run --cap-drop=all \
    -v `pwd`/files:/pycbox/files \
    -p 5000:5000 \
    --name=pycbox pycbox

或者简单地说:

docker-compose up

-d添加到要在后台运行的任一命令行。

代理

为了在子域上运行应用程序,您需要设置一个代理 向前地。示例nginx配置以在^{tt8}上显示站点$ 子域:

server{listen80;listen[::]:80;server_namepix.example.compix.example.org;return301https://$host$request_uri;}server{listen443ssl;listen[::]:443ssl;server_namepix.example.compix.example.org;access_log/var/log/nginx/access_pics.log;location/{proxy_passhttp://localhost:5000;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerUpgrade$http_upgrade;proxy_set_headerConnectionupgrade;}}

上传

若要启用上载到特定子文件夹,请使其可由所有人写入:

mkdir -p files/public
chmod 777 files/public

调试模式

在生产中不要这样做,因为它允许客户机执行 任意代码。

要在端口5000上以调试模式运行应用程序,请键入:

python pycbox.py --debug

或(推荐):

FLASK_APP=pycbox.py FLASK_DEBUG=1 flask run

第二个命令负责在python模块 已更改,因此建议进行开发。

大任务

  • 使用redis缓存拇指和突出显示的文件
  • 使用asciidoc进行降价
  • 使用pygments突出显示
  • 通过yaml文件配置:auth、quota、uploads、deny globs

更改

0.0.3

日期:2017年9月6日

  • 修复调试模式下的启动错误,因为端口是字符串
  • 修复Docker容器中由于权限导致的启动错误
  • 修复尝试上载到根文件夹时出现的错误
  • 修复Docker容器中的权限问题

0.0.2

日期:2017年8月11日

  • 修复安装包(如果使用PIP安装)

0.0.1

日期:2017年8月10日

功能包括:

  • 目录索引
  • 缩略图库
  • 突出显示(source-highlighthighlight
  • 缓存相对于当前文件夹的缩略图和高光
  • 可配置根文件夹
  • 文档文件

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

推荐PyPI第三方库


热门话题
JavaSpring重定向请求处理程序   SwingJava:拆分字符串并将其放入文本区域的   Java:标记“”上出现语法错误,此标记后面应为表达式   web服务Java RestService从日志文件写入和读取数据   java如何将ArrayList<String>转换为char数组,然后向后打印每个单词?   java SimpleDataFormat解析返回年终日期   加密Java aes解密bytebuffer,包括填充为空字节   java有没有办法从特定的if语句调用变量?   java从更新返回到渲染   spring GRPC Java登录测试   java为什么下面的代码不工作(StringBuffer.toString!=null)   java是一种可行的模式吗?   使用Spring集成测试的JavaOSGi片段   java jCommander为未知和未使用的值引发异常?   在imageView的editText中输入的java图像URL