在OSS控制台删除碎片文件显示“请求不成功”的排查思路

在OSS控制台删除碎片文件显示“请求不成功”的排查思路

更新时间:2018-10-12 07:49:44

概述

本文主要介绍在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两个工具进行删除,这两个工具没有对参数合法性进行限制。

适用于

  • 对象存储OSS