You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snakemake访问公开只读S3存储无需密钥的配置问题

Snakemake访问公开只读S3存储无需密钥的配置问题

我完全懂你现在的困扰——用AWS CLI加--no-sign-request能顺顺当当下载公开的S3资源,但换到Snakemake的S3存储插件,就硬要你填访问密钥,哪怕设空环境变量也会报错。别慌,咱们来一步步解决这个问题。

先确认下你的场景:你已经通过AWS CLI验证了公开S3资源的访问是正常的,但在Snakemake里使用storage.s3()的时候,插件强制要求提供access key和secret key,甚至设空变量还触发了AWS_ERROR_INVALID_ARGUMENT的错误。

解决方法:启用无签名请求配置

问题的核心是Snakemake的S3存储插件默认会要求签名验证,对于公开只读的S3资源,咱们需要显式开启无签名请求模式。只需要在你的Snakemake配置里加一行关键参数:

修改后的Snakemake代码如下:

storage:
    provider="s3",
    max_requests_per_second=10,
    no_sign_request=True  # 重点:开启无签名请求,适配公开S3资源

rule download_data:
    input:
        vcf=lambda wildcards: storage.s3("s3://1000genomes/phase1/phase1.exome.alignment.index.bas.gz")
    output:
        'output/data/phase1.exome.alignment.index.bas.gz'
    shell:
        # 这里可以替换成你实际的复杂处理逻辑
        "cp {input.vcf} {output}"

额外注意事项

  1. 如果你之前设置过空的密钥环境变量,建议先取消设置,避免潜在干扰:
unset SNAKEMAKE_STORAGE_S3_ACCESS_KEY
unset SNAKEMAKE_STORAGE_S3_SECRET_KEY
  1. 运行Snakemake命令时,不需要再额外传递--storage-s3-access-key或--storage-s3-secret-key参数,也不用设置对应的环境变量。

验证

现在重新运行你的Snakemake命令:

snakemake -s /path/to/snakemake.smk

这时候插件应该会自动以无签名模式访问公开S3资源,不会再弹出密钥缺失或参数无效的错误了。

这个配置的作用和AWS CLI的--no-sign-request参数完全一致,都是告诉S3客户端不需要对请求进行签名,直接访问公开可读取的资源。

备注:内容来源于stack exchange,提问作者zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 20:03:01