上传附件接口

更新时间: 2024-02-28 可选接入 可直接调用


接口概述

1、用于把客服或判罚事件的附件上传至携程网盘,如需要使用内部或第三方的网盘,请联系携程进行安全审核,审核通过后我们会操作加白
2、平台会定期监控附件占用空间,请注意不要上传和事件单无关的文件,否则会被禁止使用

请求地址

地址格式:  http(s)://{domain}/file/v1/api/upload?channel={channel}&public={public}&oversea={oversea}&filename={filename}

域名domain请在对接前和携程产研确认

请求内容

参数 类型 必传 描述 示例 备注
Content-Length String 请求头传参,文件实际大小,遵循http标准协议规范    
Crc String 请求头传参,crc校验码,可参考文档下方的代码示例  
Content-type String 请求头传参,判罚事件支持的文件类型  
channel String 地址栏传参,上传来源标识 请联系携程产研获取  
public String 地址栏传参,是否外网可访问,0代表仅携程内网访问,1外网可访问 如附件内容仅提供给携程客服使用,请传0  
oversea String 地址栏传参,文件地址所适用的地区,0 国内可访问,1 海外可访问 境内业务直接传0  
filename String 地址栏传参,请传入urlsafebase64加密过的编码:urlsafebase64({serviceproviderid}{filename}) java用户可调用Base64.getUrlEncoder().encodeToString(name)方法,传入"测试abc123.pdf",并观察编码结果是否为"5rWL6K VYWJjXzEyMy5wZGY="来验证方法有效性;注意,文件名只能包含【数字 字母 中文 - /】,文件后缀只支持数字与字母  

返回内容

RedReverseResponse

参数 类型 必传 描述 示例 备注
file_name String 携程编码后的文件名,格式:7/{channel}/{your_custom_filename} 7/{channel}/1000013_6.pdf 注意,同名文件无法覆盖,第二次上传会报409或者400错误
url String 文件链接 https://ws.downloadfile.fx.ctripcorp.com/files/7/{channel}/1000013_6.pdf  
请根据http响应码判断请求结果: 
    200 (OK)  
    400 (参数错误)  
    401 (要求正确的token或过期)  
    409 (文件名已存在)  
    411 (要求提供content length)  
    412 (Crc检验不正确)  
    413 (不能超过50M)  
    415 (不支持的图片格式)  
    416(不支持的文件格式)  
    500 (异常)

CRC校验

public static String getCrc(byte[] fileBytes) throws NoSuchAlgorithmException {
    byte[] tmp;
    int size5M = 5 * 1024 * 1024;
    int size10M = 10 * 1024 * 1024;
    if (fileBytes.length > size10M) {
        tmp = new byte[size10M];
        System.arraycopy(fileBytes, 0, tmp, 0, size5M);
        System.arraycopy(fileBytes, fileBytes.length - size5M, tmp, size5M, size5M);  }
    else {  
        tmp = fileBytes; 
    }
    MessageDigest m=MessageDigest.getInstance(""MD5"");
    byte[] digest = m.digest(tmp);
    return Hex.encodeHexString(digest);   
}

请求示例

文件名:1000013_6.pdf
请求地址:http://file.c-ctrip.com/file/v1/api/upload?channel={channel}&public=0&oversea=0&filename=MTAwMDAxM182LnBkZg==
base64:MTAwMDAxM182LnBkZg==
crc码:aec1af77b93c5158282f844b83c23556

响应示例

{
    "file_name":"7/{channel}/1000013_6.pdf",
    "url":"https://ws.downloadfile.fx.ctripcorp.com/files/7/{channel}/1000013_6.pdf"
}

results matching ""

    No results matching ""