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   未使用
ukey 608字节 上传申请获取的uploadkey
filekey 40字节 未使用,可填任意内容
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--

API - 微云的更多相关文章

  1. 泛微云桥e-birdge之金蝶云之家集成配置手册

    最近在配置金蝶云之家与泛微ecology的打通,没有看官方文档,直接配置,一直配置不通,看了官方文档后知道了少配置参数了,转载一下,省得四处去找了. 泛微云桥e-birdge之金蝶云之家集成配置手册 ...

  2. 泛微云桥e-Bridge安装手册

    有时候不看官方文档进行配置,可能会出现奇奇怪怪的问题,SO转载一下官方文档,顺带学习. 想超长体验此软件,请搜索本博客内容,有破解方法,仅用来学习使用,顺带进行二次开发,请勿使用在商业用途,谢谢. 泛 ...

  3. MFC——从实现角度分析微云界面

    在云计算时代之风吹来,很多互联网公司都在建云,提出云盘.云储存.云平台.云空间等等,骤然间,天下皆云.云是啥?有用户量,就有云,没有用户量,你的系统,你的云,也就是一朵白云. 最近研究了下微云的界面, ...

  4. 开发专题指南: JEECG高速微云开发平台前言

    JEECG微云高速开发平台-前言 1. 前言 1.1. 技术背景 随着WEB UI 框架(EasyUI/Jquery UI/Ext/DWZ)等的逐渐成熟,系统界面逐渐实现统一化,代码生成器也能够生成统 ...

  5. Send竞争对手:百度云一小时,QQ超大附件最多支持2G,邮件附件20M到50M不等(附国外所有storage列表)——痛点是,最大传输2G,最大容量只有3G(和微云不是一回事),转存到微云文件不能超过1G

    QQ邮箱最大可发送50M普通附件(群邮件则限制在2M).此外也可以使用超大附件功能,支持将1G的文件发往任意邮箱.QQ邮箱根据你的QQ邮箱容量的不同制定相应的接受附件限制,包括附件在内,2G用户所发送 ...

  6. 专题开发十三:JEECG微云高速开发平台-附录

    专题开发十三:JEECG微云高速开发平台-附录 12.1UI库经常使用控件參考演示样例 序号 控件 解决方式 參考演示样例 1 datagrid数据列表.字段採用数据字典显示文本 <t:dgCo ...

  7. QQ邮箱中转站文件即将过期时如何转存到微云

    今天QQ邮箱提示我的中转站有个文件即将过期,然后我看看了那个文件然后我想永久保存这个文件,腾讯有个微云网盘(好像有10T),想知道能不能保存到微云已变永久保存 结果发现在文件中转站这个界面竟然没有续期 ...

  8. 开发指南专题八:JEECG微云高速开发平台数据字典

       开发指南专题八:JEECG微云高速开发平台数据字典的使用 1.标签中使用数据字典 数据字典为系统中可能用到的字典类型数据提供了使用的便利性和可维护性.下面拉框标签<t:dictSele ...

  9. 1T文件夹 - 微云

    1T文件夹 - 微云 1T文件夹

随机推荐

  1. 关于获取、设置css样式封装的函数入门版

    <html> <head> <meta charset="UTF-8"> <title>CSS样式的获取和设置:简单版</ti ...

  2. 邮件中继成畅邮标配 U-Mail为何领先

    中国力推“一带一路”战略,为首成立“亚投行”,越来越多的中国企业酝酿走出去.在企业间的商务往来中,电子邮件将扮演着重要角色,但是因为要跨洋 过海,各国互联网环境和法律法规有所区别,面临着种种变数,对方 ...

  3. 天使之城(codevs 2821)

    2821 天使之城  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 天使城有一个火车站,每辆火车 ...

  4. innodb_max_dirty_pages_pct与检查点的关系

      http://ourmysql.com/archives/310 数据库运行一段时间后,经常导致服务器大量的swap,我怀疑是innodb中的脏数据太多了,因为没有free space了,mysq ...

  5. EF6 Codefirst+MySql 数据库迁移

    简介 项目使用MSSql作为数据库,但是因为SQL服务器贵那么一点,并发连接差那么一点,要把数据迁移到MySQL,顺带迁移过程以及问题. 环境 Visual Studio 2013 MySQL 5.7 ...

  6. 根据要求写SQL 语句

    Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表  ...

  7. .Net Core+Angular6 学习 第二部分(创建Angular6项目)

    . 创建angular6 前提: 需要安装nodejs以及angular的脚手架,Angular官网要求Angular6.0必须在node 8.x 和 npm 5.x 以上的版本才能正常使用. 我的版 ...

  8. 使用UIScrollView 结合 UIImageView 实现图片循环滚动

    场景: 在开发工作中,有时我们需要实现一组图片循环滚动的情况.当我们使用 UIScrollView 结合 UIImageView 来实现时,一般 UIImageView 会尽量考虑重用,下面例子是以( ...

  9. 在OrangePI上搭建homeassitant过程记录

    1.更换Python版本 由于在新版的homeassistant当中需要使用python3.5.3及以后的版本,但由于apt源中只包含3.5.2的版本,所以需要升级到python3.6. 具体更换方式 ...

  10. Android 4学习(4):概述 - Using Resources

    参考:<Professional Android 4 Application Development> Andorid中的资源包括用户自定义资源和系统自带资源,这两种资源既可以在代码中使用 ...