未提供项目描述
项目描述
Web Retriever是一个基于Python的强大API,旨在代表客户端获取和检索网络资源。当客户端无法直接访问互联网或需要显式定义外部资源(如Envoy配置中)时,它提供了一个有效的解决方案。
关于
Web Retriever是一个强大的API,旨在促进机器工作负载与互联网之间的交互,作为处理请求和检索必要在线资源的中间件。
Web Retriever基于面向插件的编程概念构建,使其高度可扩展和可定制。它可以接受一个或多个要检索的网络资源位置,作为一个允许间接访问网络资源的中间件。这使得它在各种场景中成为理想的解决方案,特别是在客户端对互联网访问有限或没有直接访问的环境。
此外,Web Retriever在Envoy配置的背景下特别有用。在这种情况下,每个外部网络资源都需要在配置文件中手动定义。Web Retriever可以通过作为多个网络资源的单一参考点来简化此过程,从而降低配置的复杂性。
Web Retriever的一个显著特性是其规则引擎,这是一个强大的组件,用于评估每个请求。它根据预定义的特定标准确定是否允许或拒绝请求,从而增强机器工作负载与互联网之间交互的安全性和有效性。
此外,规则引擎擅长处理请求头。它可以动态地将API令牌等必要元素插入到头中,从而消除了在各个工作负载之间分发敏感信息的需要,从而加强安全协议。此外,它可以删除特定的头信息,以防止无意中将内部或敏感数据泄露给外部来源。本质上,Web Retriever旨在优化机器工作负载与互联网之间的通信过程,确保其安全、高效且得到有效管理。
无论是需要获取单个网页还是并发检索多个资源,Web Retriever都提供了一个可靠、高效且可扩展的解决方案。其灵活性和适应性使其成为任何组织工具箱中的宝贵工具。
什么是POP?
该项目使用pop构建,它是基于Python的插件面向编程(POP)实现。POP旨在以新的方式将计算机历史中的概念和智慧结合起来,以解决现代计算机问题。
更多信息
入门
先决条件
Python 3.8+
git (如果从源代码安装或为项目做出贡献)
安装
如果您想使用web-retriever,您可以通过从PyPI或源代码安装它。
从PyPI安装
pip install web-retriever
从源代码安装
# clone repo
git clone git@gitlab.com/hoprco/web-retriever.git
cd web-retriever
# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install .
用法
$ web-retriever -h
usage: web-retriever [-h] [--config CONFIG] [--config-template] [--log-datefmt LOG_DATEFMT] [--log-file LOG_FILE] [--log-fmt-console LOG_FMT_CONSOLE]
[--log-fmt-logfile LOG_FMT_LOGFILE] [--log-handler-options [LOG_HANDLER_OPTIONS ...]] [--log-level LOG_LEVEL]
[--log-plugin {basic,datagram,null,rotating,socket,timed_rotating}] [--version] [--versions-report]
options:
-h, --help show this help message and exit
--config CONFIG, -c CONFIG
Load extra options from a configuration file onto hub.OPT.web_retriever
--config-template Output a config template for this command
--version Display version information
--versions-report Output a version report for reporting bugs
Logging Options:
--log-datefmt LOG_DATEFMT
The date format to display in the logs
--log-file LOG_FILE The location of the log file
--log-fmt-console LOG_FMT_CONSOLE
The log formatting used in the console
--log-fmt-logfile LOG_FMT_LOGFILE
The format to be given to log file messages
--log-handler-options [LOG_HANDLER_OPTIONS ...]
kwargs that should be passed to the logging handler used by the log_plugin
--log-level LOG_LEVEL
Set the log level, either quiet, info, warning, debug or error
--log-plugin {basic,datagram,null,rotating,socket,timed_rotating}
The logging plugin to use
示例
Web Retriever,像所有POP应用程序一样,可以接受YAML格式的配置文件。可以通过此配置文件将配置参数传递到应用程序中的POP插件。在配置文件中建立规则集,并由Web Retriever用来强制执行任何定义的规则。以下配置文件将应用程序日志级别设置为DEBUG,并在本地主机上的客户端上实施简单的规则以强制执行对API的访问。
pop_config:
log_level: DEBUG
web_retriever:
rules:
- rule_type: "deny"
rule_string: "remote != '127.0.0.1' or remote != '::1'"
然后将配置文件路径传递给应用程序的命令行
$ web-retriever -c config.yaml
======== Running on http://0.0.0.0:8080 ========
(Press CTRL+C to quit)
路线图
参考开放问题以获取建议的功能列表(和已知问题)。
致谢
Img Shields使得存储库徽章易于制作。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。