OSS控制台删除碎片文件显示请求不成功

本文主要介绍在OSS控制台删除碎片文件显示“请求不成功”时如何处理。

详细信息

在OSS控制台中存在部分碎片文件,清理碎片时无法正常删除,报“请求不成功,请重试”错误,可通过以下方法逐步进行排查。

  1. 收集控制台页面删除时调用abort_multi_part_uploads.json请求的Form DataPreview的结果。

  2. 从以上结果中确认该错误为前端错误,并且对应requestId为前端的Id。

  3. 排查该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.」
  4. 进一步获取该碎片文件的详细信息如下,发现该碎片文件的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"
      ]
    }
  5. 控制台以及部分SDK(例如Java SDK)对于文件参数的合法性做了限制,导致对于异常的参数会直接报错。这类文件需要通过限制的工具或者API操作进行删除。

    说明

    对于异常文件可以尝试使用ossutil或者osscmd两个工具进行删除,这两个工具没有对参数合法性进行限制。