本文主要介绍在OSS控制台删除碎片文件显示“请求不成功”时如何处理。
详细信息
在OSS控制台中存在部分碎片文件,清理碎片时无法正常删除,报“请求不成功,请重试”错误,可通过以下方法逐步进行排查。
收集控制台页面删除时调用abort_multi_part_uploads.json请求的
Form Data
和Preview
的结果。从以上结果中确认该错误为前端错误,并且对应requestId为前端的Id。
排查该requestId,获得如下的报错信息,从该错误信息确认Object名称不符合要求,而做了限制。
「java.lang.IllegalArgumentException: The object key is invalid. An object name should be between 1 - 1023 bytes long when encoded as UTF-8 and cannot contain LF or CR or unsupported charts in XML1.0.」
进一步获取该碎片文件的详细信息如下,发现该碎片文件的
Object Name
以正斜线(/)开头,而在控制台前端对于该参数做了限制导致请求根本没有发送到后端。{ "region": [ "oss-cn-XXXX" ], "objectName": [ "/2017-02-22/bk.XXXX_r_bj.2017-02-22.gz,/2017-04-01/bk.XXXX_r_bj.2017-04-01.gz" ], "uploadId": [ "5557BCXXXXXXXXXXC6206E6,F23072A1DXXXXXXXXXXXX8D2D3499" ], "bucketName": [ "redisXXXXkup" ] }
控制台以及部分SDK(例如
Java SDK
)对于文件参数的合法性做了限制,导致对于异常的参数会直接报错。这类文件需要通过限制的工具或者API操作进行删除。说明对于异常文件可以尝试使用ossutil或者osscmd两个工具进行删除,这两个工具没有对参数合法性进行限制。
文档内容是否对您有帮助?