为知识图谱ETL下载并缓存文件
项目描述
KG-Hub Downloader
概述
这是一个基于配置的文件缓存下载器,最初支持对http请求和Elasticsearch的查询。
安装
KGHub下载器可以通过pip安装
pip install kghub-downloader
配置
下载器需要一个YAML文件,其中包含要下载的目标URL列表以及本地名称以保存这些下载。
例如,请参阅example/download.yaml
可用选项包括
- *url:下载的URL。目前支持- http(s)
- ftp- 带有glob:选项以下载具有特定扩展名的文件(目前仅支持ftp,并且会递归地下载)。
 
- 带有
- Google Cloud Storage (gs://)
- Google Drive (gdrive://或 https://drive.google.com/...). 文件必须是公开可访问的。
- Amazon AWS S3 存储桶 (s3://)
- GitHub 发布资源 (git://RepositoryOwner/RepositoryName)
 
- local_name:本地保存文件的名称
- tag:用于过滤下载的标签
- api:用于下载文件的 API。当前支持:elasticsearch
- elasticsearch 选项- query_file:包含要对索引运行的查询的文件
- index:查询的 elasticsearch 索引
 
* 备注
Google Cloud Storage URL 需要您按照以下说明设置您的凭证:此处。您必须
- 创建一个服务帐户
- 将服务帐户添加到相关的存储桶,并
- 为该服务帐户下载一个 JSON 密钥。
然后,将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为指向该文件。将本地文件镜像到 Amazon AWS S3 存储桶需要以下步骤
- 创建 AWS 账户
- 在 AWS 中创建 IAM 用户:这将允许获取用于身份验证的
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。这两个应该作为环境变量存储在用户的系统中。- 创建 S3 存储桶:这将是推送本地文件的目标。
您还可以使用 {VARIABLE_NAME} 包含任何您设置为环境变量的机密信息,例如 API 密钥
---
- url: "https://example.com/myfancyfile.json?key={YOUR_SECRET}"
  localname: myfancyfile.json
注意:YOUR_SECRET 必须作为一个环境变量,并且在 URL 字符串中确保包含大括号。
用法
下载器可以直接在 Python 中使用,也可以通过命令行使用
在 Python 中
from kghub_downloader.download_utils import download_from_yaml
download_from_yaml(yaml_file="download.yaml", output_dir="data")
命令行
下载 download.yaml 文件中列出的文件
$ downloader [OPTIONS] ARGS
| 选项 | |
|---|---|
| yaml_file | download.yaml 文件的路径,将解析以下载内容。 默认为 ./download.yaml | 
| ignore_cache | 忽略缓存并下载文件,即使它们存在(默认 False) | 
| snippet_only | 只下载每个未压缩源的前 5 KB,用于测试和文件检查 | 
| tags | 仅下载具有此标签的文件 | 
| mirror | 上传下载文件的远程存储 URL。 支持的存储桶:Google Cloud Storage | 
| 参数 | |
|---|---|
| output_dir | 保存下载文件的路径。 | 
示例
$ downloader --output_dir example_output --tags zfin_gene_to_phenotype example.yaml
$ downloader --output_dir example_output --mirror gs://your-bucket/desired/directory
# Note that if your YAML file is named `download.yaml`,
# the argument can be omitted from the CLI call.
$ downloader --output_dir example_output
开发
安装
git clone https://github.com/monarch-initiative/kghub-downloader.git
cd kghub-downloader
poetry install
运行测试
poetry run pytest
注意:测试需要按照上述说明设置 gcloud 凭证,使用 Monarch github actions 服务帐户。
项目详情
    
       关闭
    
      
        
    
    
  
kghub_downloader-0.3.10.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e28a585c48b15552e4d908dae50672110729a65e9775ebc752d0cb953bff1069 | |
| MD5 | 294cf3d1a6254b7509362ffbc83f235a | |
| BLAKE2b-256 | fb5f5af7d8f0058e60a04ebb2f1d76d7075d6be46304c6c771964c853a779b5a | 
    
       关闭
    
      
        
    
    
  
kghub_downloader-0.3.10-py3-none-any.whl的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8e41bac81cf9915df8f68ea23802f8d48bec77efa65973d86f76595e0cd021b4 | |
| MD5 | 18ba61fb9430b7c9db60030d87e9a06e | |
| BLAKE2b-256 | d57b3b7c951bdd4936e6664a16e1e1619d0ac7287c030e5e1151c25e2e8f0530 |