docs: standardize Tencent copyright attribution for 3.0.5
English | 简体中文
nf-tencentcloud 为 Nextflow 提供腾讯云 COS 对象存储和腾讯健康组学平台执行器支持,包括 cos:// 路径、通过平台 TES 接口提交任务,以及可选的工作流 metadata 输出。
cos://
目前仅在 master 维护 V3。 V1、V2 的历史 tag 和 Release 保留,不再提供后续更新。升级前请阅读 V3 迁移指南。
master
tencentcloud-omics
3.0.5 Release 提供插件 ZIP 和 SHA256SUMS。GitHub 自动生成的源码归档不能作为插件包安装。
SHA256SUMS
在 Linux 或 macOS 的 Bash 中运行以下命令。它会校验 SHA-256,将 ZIP 中的 classes/ 和 lib/ 安装到插件目录,并拒绝覆盖已有版本:
classes/
lib/
( set -eu plugin_version=3.0.5 plugin_root="${NXF_PLUGINS_DIR:-${NXF_HOME:-$HOME/.nextflow}/plugins}" plugin_dir="$plugin_root/nf-tencentcloud-$plugin_version" release_url="https://github.com/Tencent/nf-tencentcloud/releases/download/$plugin_version" if [ -e "$plugin_dir" ] || [ -L "$plugin_dir" ]; then echo "Plugin directory already exists: $plugin_dir" >&2 exit 1 fi download_dir=$(mktemp -d) trap 'rm -rf "$download_dir"' EXIT curl --fail --location --silent --show-error \ "$release_url/nf-tencentcloud-$plugin_version.zip" \ --output "$download_dir/nf-tencentcloud-$plugin_version.zip" curl --fail --location --silent --show-error \ "$release_url/SHA256SUMS" --output "$download_dir/SHA256SUMS" (cd "$download_dir" && shasum -a 256 -c SHA256SUMS) mkdir -p "$plugin_root" mkdir "$plugin_dir" unzip -q "$download_dir/nf-tencentcloud-$plugin_version.zip" -d "$plugin_dir" test -f "$plugin_dir/classes/META-INF/MANIFEST.MF" )
运行 Nextflow 时使用相同的 NXF_PLUGINS_DIR 或 NXF_HOME。如果安装在创建版本目录后失败,请先检查该不完整目录;上述命令不会覆盖它。目录布局依据 Nextflow 25.10.2 的插件加载实现。
NXF_PLUGINS_DIR
NXF_HOME
在 nextflow.config 中固定已安装版本:
nextflow.config
plugins { id 'nf-tencentcloud@3.0.5' }
也可以给 nextflow run 添加 -plugins nf-tencentcloud@3.0.5。工作流使用的其他插件仍需预先安装,或通过各自的分发渠道获取。
nextflow run
-plugins nf-tencentcloud@3.0.5
创建 GitHub Release 不等于向 Nextflow 插件注册表发布版本。上述安装方式使用 GitHub ZIP,不假定 nextflow plugin install 已能下载 3.0.5。注册表发布需要单独取得插件所有权及访问令牌,详见官方发布说明。本仓库的 make release 只检查并打包已提交源码;make publish-registry 才执行独立的注册表发布操作。
nextflow plugin install
make release
make publish-registry
通过运行环境或密钥管理服务提供凭据。下面的环境变量名是示例约定,由配置显式读取;不要把真实密钥提交到工作流或配置仓库。
tencentcloud { region = System.getenv('TENCENTCLOUD_REGION') secretId = System.getenv('TENCENTCLOUD_SECRET_ID') secretKey = System.getenv('TENCENTCLOUD_SECRET_KEY') sessionToken = System.getenv('TENCENTCLOUD_SESSION_TOKEN') } params.input = 'cos://your-bucket-1234567890/input/sample.txt' workDir = 'cos://your-bucket-1234567890/nextflow/work'
region 必须与存储桶实际地域一致,例如 ap-guangzhou。临时凭据需要提供 sessionToken;使用长期凭据时可不设置对应环境变量。tencentcloud.accessToken 不是 COS 凭据配置项。
region
ap-guangzhou
sessionToken
tencentcloud.accessToken
托管环境可通过 /config/rclone/rclone.conf 中对应 bucket 的配置节,或 /config/cos-secret/<bucket> 挂载凭据。这两种来源依次优先于工作流配置。所选挂载来源的有效更新会轮换凭据;无效更新保留上一次有效凭据。更改 region 需要重新打开 filesystem。
/config/rclone/rclone.conf
/config/cos-secret/<bucket>
插件及凭据配置完成后,可以通过 Nextflow 文件操作读取 COS:
nextflow.enable.dsl = 2 workflow { channel.fromPath(params.input, checkIfExists: true) .view { path -> path.text } }
请向平台管理员获取 TES endpoint 及所需的 bearer token。仅拥有 COS 账号并不代表具有平台执行器权限。产品信息见腾讯健康组学平台。
使用平台时,在 COS 配置之外添加:
tencentcloud { omics { endpoint = System.getenv('OMICS_TES_ENDPOINT') accessToken = System.getenv('OMICS_TES_ACCESS_TOKEN') } } process.executor = 'tencentcloud-omics'
使用所属环境提供的 endpoint;执行器会在需要时添加 /v1。tencentcloud.omics.accessToken 用于 TES 请求认证,与 COS 的 sessionToken 分开配置。
/v1
tencentcloud.omics.accessToken
COS 是对象存储,NIO 接口不提供完整的 POSIX 文件系统语义:
SYNC
DSYNC
Files.copy
name
name/
Files.isWritable
元数据权限、并发与故障边界、资源消耗和测试覆盖见文件系统审计。上游实现对照说明了回归用例与 AWS、Google Cloud Storage、Nextflow 和 Java NIO 行为的对应关系。
选择 JDK 21 后运行:
./gradlew test jacocoTestReport check packagePlugin
安装包输出为 build/distributions/nf-tencentcloud-3.0.5.zip。测试默认离线运行。真实 COS 测试必须显式开启,并使用可清理的测试 bucket;配置方法见文件系统审计。离线测试通过不代表已验证当前账号的 COS 权限或平台连接。
build/distributions/nf-tencentcloud-3.0.5.zip
问题报告、Pull Request 和验证要求见 CONTRIBUTING.md。
采用 Apache License 2.0,详见 LICENSE。保留既有 Tencent 及第三方署名说明。
本插件由腾讯健康组学平台团队维护。可复现的插件问题请提交至 GitHub Issues;平台产品咨询请联系 omics@tencent.com。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
English | 简体中文
nf-tencentcloud
简介
nf-tencentcloud 为 Nextflow 提供腾讯云 COS 对象存储和腾讯健康组学平台执行器支持,包括
cos://路径、通过平台 TES 接口提交任务,以及可选的工作流 metadata 输出。目前仅在
master维护 V3。 V1、V2 的历史 tag 和 Release 保留,不再提供后续更新。升级前请阅读 V3 迁移指南。快速开始
环境要求
tencentcloud-omics执行器还需要已配置的腾讯健康组学平台环境及其 TES 接口访问权限。从 GitHub Release 安装
3.0.5 Release 提供插件 ZIP 和
SHA256SUMS。GitHub 自动生成的源码归档不能作为插件包安装。在 Linux 或 macOS 的 Bash 中运行以下命令。它会校验 SHA-256,将 ZIP 中的
classes/和lib/安装到插件目录,并拒绝覆盖已有版本:运行 Nextflow 时使用相同的
NXF_PLUGINS_DIR或NXF_HOME。如果安装在创建版本目录后失败,请先检查该不完整目录;上述命令不会覆盖它。目录布局依据 Nextflow 25.10.2 的插件加载实现。在
nextflow.config中固定已安装版本:也可以给
nextflow run添加-plugins nf-tencentcloud@3.0.5。工作流使用的其他插件仍需预先安装,或通过各自的分发渠道获取。插件注册表状态
创建 GitHub Release 不等于向 Nextflow 插件注册表发布版本。上述安装方式使用 GitHub ZIP,不假定
nextflow plugin install已能下载 3.0.5。注册表发布需要单独取得插件所有权及访问令牌,详见官方发布说明。本仓库的make release只检查并打包已提交源码;make publish-registry才执行独立的注册表发布操作。使用示例
配置 COS
通过运行环境或密钥管理服务提供凭据。下面的环境变量名是示例约定,由配置显式读取;不要把真实密钥提交到工作流或配置仓库。
region必须与存储桶实际地域一致,例如ap-guangzhou。临时凭据需要提供sessionToken;使用长期凭据时可不设置对应环境变量。tencentcloud.accessToken不是 COS 凭据配置项。托管环境可通过
/config/rclone/rclone.conf中对应 bucket 的配置节,或/config/cos-secret/<bucket>挂载凭据。这两种来源依次优先于工作流配置。所选挂载来源的有效更新会轮换凭据;无效更新保留上一次有效凭据。更改 region 需要重新打开 filesystem。插件及凭据配置完成后,可以通过 Nextflow 文件操作读取 COS:
配置腾讯健康组学平台
请向平台管理员获取 TES endpoint 及所需的 bearer token。仅拥有 COS 账号并不代表具有平台执行器权限。产品信息见腾讯健康组学平台。
使用平台时,在 COS 配置之外添加:
使用所属环境提供的 endpoint;执行器会在需要时添加
/v1。tencentcloud.omics.accessToken用于 TES 请求认证,与 COS 的sessionToken分开配置。文件系统行为
COS 是对象存储,NIO 接口不提供完整的 POSIX 文件系统语义:
SYNC和DSYNC。Files.copy对目录只复制目录本身;显式目录上传、下载会递归处理。不支持移动非空目录。name优先于name/;最后一个子对象删除后,隐式目录可能消失。Files.isWritable保守返回 false;实际写权限由 COS 校验。元数据权限、并发与故障边界、资源消耗和测试覆盖见文件系统审计。上游实现对照说明了回归用例与 AWS、Google Cloud Storage、Nextflow 和 Java NIO 行为的对应关系。
构建与测试
选择 JDK 21 后运行:
安装包输出为
build/distributions/nf-tencentcloud-3.0.5.zip。测试默认离线运行。真实 COS 测试必须显式开启,并使用可清理的测试 bucket;配置方法见文件系统审计。离线测试通过不代表已验证当前账号的 COS 权限或平台连接。贡献
问题报告、Pull Request 和验证要求见 CONTRIBUTING.md。
许可证
采用 Apache License 2.0,详见 LICENSE。保留既有 Tencent 及第三方署名说明。
支持
本插件由腾讯健康组学平台团队维护。可复现的插件问题请提交至 GitHub Issues;平台产品咨询请联系 omics@tencent.com。