跳转到主要内容

未提供项目描述

项目描述

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python PyPI Web Retriever

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)

路线图

参考开放问题以获取建议的功能列表(和已知问题)。

致谢

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

web-retriever-0.3.0.tar.gz (17.7 KB 查看哈希值

上传于 源代码

构建分发版

web_retriever-0.3.0-py3-none-any.whl (17.7 kB 查看哈希值)

上传于 Python 3

由以下支持