无法删除包含错误字符的Amazon S3密钥

A A*_*A A 3 amazon-s3 amazon-web-services

我刚刚开始使用S3.我不小心制作了一个包含坏字符的密钥,现在我无法列出该文件夹的内容,也无法删除该坏密钥.(我已经添加了检查,以确保我不再这样做).

我最初使用的是2008年的旧"S3"python模块.现在我已切换到boto-2.0,我仍然无法删除它.我在网上做了很多研究,似乎问题是我的XML字符无效,所以它似乎是最低级别的问题,到目前为止还没有API帮助过.

我终于联系了亚马逊,他们说要使用http://aws.amazon.com/code/128上的 "s3-curl.pl" .我下载了,这是我的钥匙:

<Key>info/&#x1b;[01</Key>
Run Code Online (Sandbox Code Playgroud)

我想我当时正在为一些文件做一个快速的bash循环,我设置了"lscolors",所以这发生了.

我试过了 ./s3curl.pl --id <myID> --key <myKEY> -- -X DELETE https://mybucket.s3.amazonaws.com/info/&#x1b;[01

(并且还尝试将URL放在单/双引号中,并且还尝试转义'[').

没有URL上的引号,它会挂起.有引号,我得到"curl:(3)[globbing]错误:pos 50后的范围规格不好".我编辑了s3-curl.pl来做curl --globoff并仍然得到这个错误.

我将不胜感激任何帮助.

小智 5

您可以从此处使用s3cmd工具.你首先需要运行

s3cmd fixbucket <bucket name that contains bad file>.
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用删除该文件

s3cmd del <bucket>/<file>
Run Code Online (Sandbox Code Playgroud)


小智 5

这解决了问题,只需删除主文件夹:

aws s3 rm "s3://BUCKET_NAME/folder/folder" --recursive
Run Code Online (Sandbox Code Playgroud)