CNode社区第三方图片上传API,用来解决官方API未提供图片上传接口的问题。
接口主要提供给CNode社区的各种客户端调用
这个服务大概会持久运行,直到官方提供图片上传接口,或者我破产了为止…(:з」∠)
目前架构为:Jersey(Java),使用七牛云存储,部署在Coding.net演示程序,没有数据库
功能很简单,只有一个接口,实现的也很粗糙
(没使用Node实现真是抱歉了,一个只会写点Java的菜B。Node还在学习,目前还弄不出东西,轻喷…)
七牛使用的是标准用户的免费配额(储存空间10GB;每月Put请求10万次;每月下载流量10GB;每月Get请求100万次),按照目前的CNode流量应该足够用了(反正老大 @alsotang 说不够的话他能拉赞助)
文档
接口地址为:http://cnode-api.takwolf.com
可以参考的一个客户端调用范例为:CNodeMD
Home页面提供一个测试工具,方便在浏览器下测试
接口只有一个:
post /images 上传一个图片
接收 post 参数,要求 content-Type 为 multipart/form-data
-
accesstoken String 用户的 accessToken
-
file File 图片文件
返回,需要指定 Accept 为 application/json 或者 application/xml
成功:
{
"success": true,
"image_url": "http://someurl" // 该地址为图片的直接地址
}
失败:
{
"success": false,
"error_msg": "some message"
}
!!注意!!
该部分请务必注意!!
该接口是一个第三方图片上传接口,目前没有获得官方认证,而该接口调用需要传递CNode用户的accessToken,这是一个非常危险的行为。
向第三方泄露accessToken,意味着第三方有能力获取用户权限(发帖和回复),如果第三方不可信,后果是非常严重的。
该项目代码托管在Github上,部署在coding.net,没有数据库连接逻辑,以此来避嫌。
coding.net的部署项目是私有的,因为涉及七牛密钥的配置(gitignore),目前还没有找到一个方法来私有一个分支
想到的办法是希望CNode的管理成员可以加入coding的项目组中负责监管。
客户端调用注意
客户端实现在调用该接口的时候,请务必明确的给出提示例如对话框,让用户知道图片接口使用第三方,并且让用户有权选择是否使用这个服务
希望官方可以尽早开放图片上传接口,从根本上解决这个问题
关于accessToken的问题,可以参考这个这个issues:用户的accessToken有效期是多少
当你觉得accessToken有泄露风险的时候,请务必通过有效的手动,让当前的accessToken失效。
更多我没有考虑到的问题,请创建issue