如何解决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识别错误。可以用两种方式修复:- 用
dos2unix转换文件:dos2unix ../links.txt - 直接在脚本里处理换行符:
#!/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
相关产品推荐
相关产品推荐

