使用Amazon S3 CLI复制文件报错:指定目录不存在
解决AWS S3 CLI上传Windows目录文件时的「No such file or directory」错误
看起来你遇到的是Windows环境下AWS CLI路径解析的典型问题,结合你的场景,我整理了几个快速解决的方案:
方案1:给路径加引号并添加递归参数
Windows命令行中,反斜杠\是转义字符,直接写路径可能导致CLI解析出错。你可以给完整路径加上双引号,同时必须加上--recursive参数(这个是核心,否则CLI只会尝试上传目录本身,而不是里面的文件):
aws s3 cp "C:\Work\jpg" s3://{bucket}/Test --recursive
注意不要在路径末尾加反斜杠\,否则可能会干扰引号的解析,导致路径识别错误。
方案2:先切换到目标目录再执行命令
先通过cd命令进入你的测试文件夹,再执行上传命令,这样可以彻底避免路径转义的问题:
cd C:\Work\jpg aws s3 cp . s3://{bucket}/Test --recursive
这里的.会被正确识别为当前目录,加上--recursive就能把所有.jpg文件上传到S3的Test前缀下。
方案3:改用正斜杠表示路径
在AWS CLI中,Windows路径也可以用正斜杠/来表示,这样就不会有转义字符的干扰:
aws s3 cp C:/Work/jpg s3://{bucket}/Test --recursive
为什么你的原命令会报错?
- 缺少
--recursive参数:AWS CLI默认只会处理单个文件,不会遍历目录下的内容; - 路径末尾的反斜杠问题:Windows环境下,路径末尾的
\会被当作转义字符,导致CLI错误解析路径,误以为找不到C:\Work\jpg\这个目录。
内容的提问来源于stack exchange,提问作者PRMan




