上传导入文件

最近更新时间:2017-12-14 11:47:28

文档重复

1. 接口描述

本接口(UploadCdbImportSQLFile)用于上传导入文件。
接口请求地址:本接口属于文件上传类接口,请求地址为https://up-cdb.qcloud.com/api/index

  1. 该接口的参数使用GET方式传入, 文件内容以POST方式传入。
  2. 签名时,“请求方法”请使用POST。(文件内容不用作签名)
  3. 上传前需要对文件内容进行分片,每个分片的大小必须为2MB。第1个分片的ID为1,第2个分片的ID为2,以此类推... 最后一个分片的大小可以小于2MB。
  4. 上传前须调用查询导入文件列表接口,查看是否已经存在同名文件:
    1) 不存在同名文件:从第一个分片开始传。第一个分片上传完成之后,系统会自动生成一个该文件的唯一标识(fileId)。
    2) 存在同名文件,且已经上传完成:则需要改名后再上传。
    3) 存在同名文件,且状态是上传中:需自行确认上传中的文件与当前文件是否为同一个文件。如果是同一个文件,则可以从已经上传完成的部分的下一个分片开始传; 如果不是同一个文件,则需要改名后再上传。

2. 输入参数

以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,见公共请求参数页面。其中,此接口的Action字段为UploadCdbImportSQLFile。

GET参数:

参数名称 是否必选 类型 描述
fileName String 文件名称
fileSize Int 文件总大小,单位Byte
sliceId Int 文件分片ID,从1开始

POST参数:

参数名称 是否必选 类型 描述
fileSlice 二进制流 文件分片内容(该参数不用作签名)

3. 输出参数

参数名称 类型 描述
code Int 公共错误码, 0表示成功,其他值表示失败。详见错误码页面的公共错误码
message String 模块错误信息描述,与接口相关。
codeDesc String 英文错误描述
data Array 返回的数据

其中, data 参数的构成如下:

参数名称 类型 描述
fileId String 文件的唯一标识
fileName String 文件名称
allSliceNum Int 该文件总的分片数量
completeNum Int 已经上传完成的分片数量, completeNum等于allSliceNum表示文件上传完成

4. 错误码表

以下错误码表仅列出了该接口的业务逻辑错误码。

错误代码 英文提示 错误描述
9003 InvalidParameter 参数错误
9701 InternalFailure 文件上传内部错误
9702 OperationDenied 文件已经上传完成,不能重复上传

5. 示例

输入

接口请求地址以及GET参数部分:
https://up-cdb.qcloud.com/api/index?Action=UploadCdbImportSQLFile
&<公共请求参数>
&fileName=cdb.sql
&fileSize=17
&sliceId=1
HEADER部分:
Content-Length:1154
Content-Type:multipart/form-data; boundary=----myBoundary
POST部分:
------myBoundary
Content-Disposition: form-data; name="fileSlice"; filename="blob"
Content-Type: application/octet-stream
[文件二进制流]
------myBoundary--

输出

{
    "code":"0",
    "message":"",
    "codeDesc":"Success",
    "data": {
            "fileId": "5596d7433fe211da4b487228db4e7c57",
            "fileName": "cdb.sql",
            "allSliceNum": 1,
            "completeNum": 1
     }
}