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

如何解决AWS S3批量下载文件时的Unknown options错误?

解决AWS S3批量下载脚本的"Unknown options"错误

错误原因分析

报错里的路径是s3:///cms/imagepool/5f84daa19b7df.jpg,比正常格式多了一个斜杠,说明AWS CLI无法识别有效的存储桶路径,大概率是以下几个问题导致:

解决步骤

  • 替换占位符为真实桶名
    你的路径列表里的<bucket>是占位符,必须替换成你实际的S3存储桶名称,比如把s3://<bucket>/cms/...改成s3://my-actual-bucket/cms/...,确保路径格式为标准的s3://桶名/对象路径。

  • 处理文件换行符问题
    如果links.txt是在Windows系统下创建的,会带有CRLF换行符(\r\n),bash读取时会把\r当成路径的一部分,导致AWS CLI识别错误。可以用两种方式修复:

    1. 用dos2unix转换文件:
      dos2unix ../links.txt
      
    2. 直接在脚本里处理换行符:
      #!/bin/bash
      while read -r line
      do
        # 移除行尾的\r字符
        line=$(echo "$line" | tr -d '\r')
        aws s3 cp "${line}" ./
      done <../links.txt
      
  • 清理文件中的不可见字符
    用cat -A ../links.txt查看文件内容,检查每行末尾是否有多余的空格、制表符或其他控制字符。如果有,用sed清理:

    sed -i 's/[[:space:]]*$//' ../links.txt
    
  • 调试脚本确认参数
    在脚本里添加echo命令,打印实际执行的AWS命令,方便排查参数问题:

    #!/bin/bash
    while read -r line
    do
      echo "执行命令: aws s3 cp "${line}" ./"
      aws s3 cp "${line}" ./
    done <../links.txt
    

内容的提问来源于stack exchange,提问作者zeid10

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:20:24