zoukankan      html  css  js  c++  java
  • API

    API - 微云

    1. 接口说明

    文件上传申请,成功会返回实际上传的地址。

    根据申请上传返回的地址,组织数据上传。

    1.1 URL

    OAuth2.0协议: https://graph.qq.com/weiyun/upload_file

    OAuth1.0协议: http://openapi.qzone.qq.com/weiyun/upload_file

    1.2 格式

    JSON

    1.3 HTTP请求方式

    GET

    1.4 输入参数说明

    各个参数请进行URL编码,编码时请遵守RFC 1738

    a) 通用参数

    OAuth2.0协议必须传入的通用参数,详见这里

    OAuth1.0协议必须传入的通用参数,详见这里

    b) 私有参数

    appid: 第三方接入ID

    sha : 待上传文件对应的SHA1的值(使用SHA1算法)

    md5 : 待上传文件对应的MD5值

    size : 文件大小,单位为字节

    name : 文件名,字符串(中文名称用UTF8格式编码,文件名规则跟windows系统一样,文件名中不能包括下列字符 / : * ? ” < > | )

    upload_type:上传类型,可选。control:控件上传(默认),normal:普通http上传。数据的上传方式一定要填写正确,不然不能正确上传,因为不同的上传方式,返回的上传服务器是不一样

    1.5 请求示例

    以OAuth2.0协议为例(敏感信息都用*号进行了处理,实际请求中需要替换成真实的值):

    https://graph.qq.com/weiyun/put?

    access_token=*************&

    oauth_consumer_key=12345&

    openid=****************

    1.6 返回参数说明

    ret: 操作结果,参见“返回错误码具体含义”

    file_id:待上传文件的文件ID(68字节长度的字符串)

    sum:上传校验码,字符串(最大348字节)

    port:上传服务器端口

    host: 上传服务器地址或者域名

    1.7 返回码说明

    0: 正确返回

    1013: 存储平台系统繁忙

    1014: 业务内部错误

    1015: 在存储平台创建用户失败

    1016: 存储平台不存在该用户

    1019: 目录不存在

    1022: 文件已经存在

    1023: 上传文件时,索引创建成功,上传地址获取失败,客户端需要发起续传

    1025: 访问bitmap失败

    1026: 父目录不存在

    1028: 目录或者文件数超过总限制

    1029: 单个文件大小超限

    1051: 当前目录下已经存在同名文件

    1053: 用户剩余空间不足

    1057: 续传时源文件已经发生改变

    1071: oidb 数据库访问失败

    1072: oidb 数据头部校验失败

    1076: 非法文件,文件在黑名单中

    1078: 用户不在白名单中

    20008: 接入服务内部错误

    20014: 该APPID不存在

    20015: 认证key错误

    30003: 缓冲区长度不够

    100003: 文件的SHA值无效

    100004: 文件的MD5值无效

    100006: 内存溢出

    100009: 内部通讯错误

    100013: 初始化ptlogin失败

    100014: ptlogin验证失败

    100017: appid无效

    100018: 上传类型无效

    100019: 父目录无效

    1.8 正确返回示例

    JSON示例:

    {
      "data": {
        "csum": "32e5cdf9c5452488c92180d0b03b5b04335b3b09b9f057f2313e996b340ca7f425176d9dc89401c3fddc0f7cec6b96c65b9c287b76891b3f51e89871e21470dc39ef3098923bba74288fb65ba97b2b5ff7cc21460fe3d8a295c629c9d64de9e7fbcae2dc43f375151741d0ad82a42b9c3eaa6282f943ee378e3ef2e380a2c5d22dd0504b3448ddff470b346ef1dd55b0e4d98b51f3859ed74da81d43ff68d59d61def6c08ed98d9bdd8c18de89fce6907d301446cd8029ea7c6328d78cf892b4ed9e08cee74561cf27f1196ac13c2e6468ad6706b0c6b5bb78f2cc6d9d6ba9864167214f10020c4347cc9cc81b21006b54f91e8cfb9c8a6df850199e8794fa28ec1a4d78d4e9ed8208bd40836618eb3ab13d7f5840d31cfa0932768d599d1696f8b25c60a2389e28b75ed4af0d014255",
        "file_id": "8fb2cfad-67a9-49a8-b6b1-40014b57dbd7",
        "host": "hz.qqdisk.ftn.qq.com",
        "port": 80
      },
      "ret": 0
    }						

    1.9 错误返回示例

    {
    	"data": {
    		"file_attr": "3",
    		"file_ctime": "1970-01-16 20:13:29 458",
    		"file_cur_size": "0",
    		"file_id": "bb58fc0e-af02-454b-81ed-c1dfcecfa596",
    		"file_md5": "076e3caed758a1c18c91a0e9cae3368f",
    		"file_name": "d1.jpg",
    		"file_sha": "f5f8ad26819a471318d24631fa5055036712a87e",
    		"file_size": "879394",
    		"pdirkey": "4b7c321637e8951db1089abfc006961",
    	},
      "ret": 1051
    }						

    2. 数据上传协议说明

    2.1 普通http上传

    即文件内容。

    上传由HTTP标准协议上传。

    a) POST

    格式:

    HTTP头部起始TAG对文件内容结束TAG对

    HTTP头部字段描述

    字段描述长度/类型值定义/备注
    ver 未使用
    ukey608字节上传申请获取的uploadkey
    filekey40字节未使用,可填任意内容
    boundary 后续要用的boundry,详见后述

    起始TAG部分字段描述

    字段描述长度/类型值定义/备注
    Filename 上传的本地文件名
    Mode 上传模式。如果是flash上传值为flashupload
    Uin 上传用户QQ号
    resp_charset 回应编码类型
    appid 业务号(目前未使用)
    sid 未使用
    t 未使用

    结束TAG部分字段描述

    字段描述长度/类型值定义/备注
    Upload "Submit Query"

    b) Get

    GET /crossdomain.xml

    填充示例描述

    POST http://dts.xa.ftn.qq.com/ftn_handler/?ver=12345&ukey=4bb9288183515aa6d2d2b101c7b9230e3d33e2df144740372a349768bc9538b386b24f84b6e538eef9854628aaa175fa5a3169600d17b349327c226428d930d1eec4685123593bf6ab3e1c5b4147f364d494e965ed4f1c989e8a02877baa01dd4c62ade3a94daa77bc3f926a87285e7a1586ffd672f4bcc2d7019f893b6e5d70d5cbacfdd373b5a32ec5224dc5ec5fc03d4bf093740e3fea8d9ca4c62becc0cb15927a0562d6b3bbc6419b837f0b1b7f0c5fe2c804234a387a86b5e269eb63b37bd2a5fdafb4d18f0103df1632fba82689a18304e9701041f5213b6b1ceb7f89beaa859bd2fc41573ea934cb00a591231969e09e7de7041254126997ac07fb07e075cbd848f15f95f1277d3a88f44defc105e98d539c3efffa135f8e2aac15ea6089cf73d8a6f2cbf46314698dfaa907&filekey=000000006be10f39d4bf46a59c3313a150406ec2& HTTP/1.1

    Accept: text/*

    Content-Type:multipart/form-data;boundary=------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    User-Agent: Shockwave Flash

    Host: dts.xa.ftn.qq.com

    Content-Length: 1049

    Connection: Keep-Alive

    Pragma: no-cache

    Cookie:lv_irt_id=1f718c87244cb1986cb165b0af488940; ptisp=ctc

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3 起始TAG(boundary)

    Content-Disposition: form-data; name="Filename"

    test.txt

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="mode"

    flashupload

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="uin"

    346972813

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="resp_charset"

    UTF8

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="appid"

    2

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="sid"

    4G2t6Io2uxVAMydp

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="t"

    exs_ftn_uploadaction

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3

    Content-Disposition: form-data; name="file"; filename="test.txt"

    Content-Type: application/octet-stream 以下为实际上传内容

    this is for test 此部分为实际上传的文件内容

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3 结束TAG

    Content-Disposition: form-data; name="Upload"

    Submit Query

    ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3--

  • 相关阅读:
    Java BEAN与EJB的区别
    Java设计模式(22)命令模式(Command模式)
    Java设计模式(21)访问模式(Visitor者模式)
    Java设计模式(20)观察者模式(Observer模式)
    Java设计模式(19)状态模式(State模式)
    Java设计模式(18)策略模式(Strategy模式)
    Java设计模式(17)解释器模式(Interpreter模式)
    Java设计模式(16)中介模式(Mediator模式)
    Java设计模式(15)备忘录模式(Memento模式)
    C# SignalR 即时通讯 聊天室
  • 原文地址:https://www.cnblogs.com/lexus/p/3291932.html
Copyright © 2011-2022 走看看