Python 3.x 无法删除包含特殊字符的s3密钥
我有一个s3对象,其中有一个特殊字符\x{1B}(a前面) 当我尝试使用cli删除它时,由于特殊字符,它不尊重它 如果我尝试通过Python 3.x 无法删除包含特殊字符的s3密钥,python-3.x,amazon-s3,command-line-interface,boto3,aws-cli,Python 3.x,Amazon S3,Command Line Interface,Boto3,Aws Cli,我有一个s3对象,其中有一个特殊字符\x{1B}(a前面) 当我尝试使用cli删除它时,由于特殊字符,它不尊重它 如果我尝试通过 bucket.object_versions.delete() 我明白了 如果我尝试从UI中删除,操作将成功,但对象不会消失 我希望永久删除该对象。 感谢您的指点。不要使用反引号“使用单引号” 在Linux/Unix shell中,反引号用于运行内联命令 通过提供该特殊字符的十六进制代码,可以使用printf打印任何内容。例如,要在键中添加选项卡,请使用: --ke
bucket.object_versions.delete()
我明白了
如果我尝试从UI中删除,操作将成功,但对象不会消失
我希望永久删除该对象。
感谢您的指点。不要使用反引号“使用单引号” 在Linux/Unix shell中,反引号用于运行内联命令 通过提供该特殊字符的十六进制代码,可以使用
printf
打印任何内容。例如,要在键中添加选项卡,请使用:
--key `printf 'a\x09b'`
这一次,需要反引号。我尝试了反引号和单引号。不起作用。在遇到特殊字符的那一刻,它触发一个ESC,清除控制台,留给我从开始的语句a的一半A@DJ_Stuffy_K在这种情况下,请与他人分享您的特殊角色的身份。它是如何到达那里的?你用什么方法创建了一个带有不可打印字符的密钥?@DJ_Stuffy_K添加了另一个建议,尝试使用
printf
有人创建了它并留下了它,我只是想清理一下。特殊字符是\x{1B}
@DJ_Stuffy_K在这种情况下,将\x09
替换为\x1b
,在上面的示例中,您表示通过S3管理控制台删除时“对象不会消失”。bucket是否已激活版本控制?如果是,请激活“列出版本”选项并删除对象的所有版本。然后它就会消失。
botocore.exceptions.ClientError: An error occurred (MalformedXML) when calling the DeleteObjects operation: The XML you provided was not well-formed or did not validate against our published schema
--key `printf 'a\x09b'`