Amazon web services AWS CLI S3 COPY命令Get FINDSTR因变量太长而出错?
当我通过AWS CLI将文件复制到带有变量的S3 bucket时,我得到了一个错误 --带变量的命令Amazon web services AWS CLI S3 COPY命令Get FINDSTR因变量太长而出错?,amazon-web-services,amazon-s3,command-line-interface,Amazon Web Services,Amazon S3,Command Line Interface,当我通过AWS CLI将文件复制到带有变量的S3 bucket时,我得到了一个错误 --带变量的命令 aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME% aws s3 cp G:\XXX\XXX\XXX\XXX.bak s3://<S3_bucketname>/<TAG>/<FILENAME> set S3API_COMMAND_STR=aws s3api put-object --buck
aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME%
aws s3 cp G:\XXX\XXX\XXX\XXX.bak s3://<S3_bucketname>/<TAG>/<FILENAME>
set S3API_COMMAND_STR=aws s3api put-object --bucket %S3_BUCKET% --key %DEST_FILENAME% --body %SRC_FILENAME% --metadata md5chksum=%SRC_HASH% --content-md5 %SRC_HASH%
--错误消息
FINDSTR: 1 行目は長すぎます。 (original)
FINDSTR: TOO LONG 1st.line (translated)
如果我在没有任何变量的情况下设置源和目标S3 bucket文件名,它会像往常一样成功结束。由相同逻辑(变量)指定的“aws s3api put object”命令从未遇到过相同的问题
--不带变量的命令
aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME%
aws s3 cp G:\XXX\XXX\XXX\XXX.bak s3://<S3_bucketname>/<TAG>/<FILENAME>
set S3API_COMMAND_STR=aws s3api put-object --bucket %S3_BUCKET% --key %DEST_FILENAME% --body %SRC_FILENAME% --metadata md5chksum=%SRC_HASH% --content-md5 %SRC_HASH%
我认为aws s3api命令更好,但有时我需要发送超过5GB的文件,所以暂时应该选择aws cp命令
我认为这个问题可能是由于Windows变量的长度限制造成的,带有变量的s3api命令应该是更长的变量,尽管
如果有人遇到同样的问题,请告诉我你是如何处理的。如有任何建议,将不胜感激
真诚地
<附加信息>
只是暂时的解决办法,一旦输出命令行并执行它,它就会成功地工作
echo %S3_COMMAND_STR% > temp_cmd.bat
call temp_cmd.bat
但是仍然不确定为什么在aws cli上发生此findstr错误,因此请提供任何信息。仅供参考
仍然不确定AWS CLI为什么会接受它,但遵循这两种解决方法也会成功
aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME% & if ErrorLevel 1 goto ERR_S3_UPLOAD
或
@哈迪,谢谢你的建议:)