SugarSync API

App支持SugarSync网盘的前提:

1、AccessKeyID:xxx

2、Private Access Key:xxx

3、AppID:xxx

详细的API总结如下:

Creating a Refresh Token

HTTP Request Example

  1. POST https://api.sugarsync.com/app-authorization HTTP/1.1
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com
  1. Content-Length: 364
  1. Content-Type: application/xml; charset=UTF-8
  1.  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  1. <appAuthorization>
  1. <username>jsmith127@sugarsync.com</username>
  1. <password>sugar20P$</password>
  1. <application>/sc/10061/3_21053</application>
  1. <accessKeyId>AKIAJTXL5NNLKNIAEORA</accessKeyId>
  1. <privateAccessKey>QAzJKVkzSXbIXWFwEPbzmRYmP8VmdLyNn33AvjRP</privateAccessKey>
  1. </appAuthorization>

Response Example

  1. HTTP/1.1 201 Created
  1. Content-Type: application/xml; charset=UTF-8
  1. Date: Wed, 28 Mar 2012 19:29:00 GMT
  1. Location: https://api.sugarsync.com/app-authorization/A31303036322f335f3237303337
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5
  1. Transfer-Encoding: chunked

200-299

The request was successful. The refresh token was created.

400

Bad request. Typically returned if required information, such as the username, was not provided as input.

401

Authorization required. The presented credentials, if any, were not sufficient to access the resource.

500-599

Server error.

说明:

  1. request中header的参数都可忽略,一般的框架都会根据url和body自动填充。如果出现domain错误,表示host参数不正确,需要自己显示的添加。
  2. 请求的body中为xml结构,注意格式即可。
  3. response中的location即为refreshToken,用于下一步请求accessToken。
  4. 如果有异常,建议多使用fiddler参看请求和返回内容
  5. 当返回码为400时候,多为账号密码错误,或者请求url错误;当为401,多为accessToken错误或者过期失效。后续api一样。

Creating an Access Token

HTTP Request Example

  1. POST https://api.sugarsync.com/authorization HTTP/1.1
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com
  1. Content-Length: 358
  1. Content-Type: application/xml; charset=UTF-8
  1.  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  1. <tokenAuthRequest>
  1. <accessKeyId>AKIAJTXL5NNLKNIAEORA</accessKeyId>
  1. <privateAccessKey>QAzJKVkzSXbIXWFwEPbzmRYmP8VmdLyNn33AvjRP</privateAccessKey>
  1. <refreshToken>https://api.sugarsync.com/app-authorization/A31303036322f335f3237303337</refreshToken>
  1. </tokenAuthRequest>

Response Example

  1. HTTP/1.1 201 Created
  1. Content-Type: application/xml; charset=UTF-8
  1. Date: Wed, 28 Mar 2012 19:30:44 GMT
  1. Location: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5
  1. Transfer-Encoding: chunked
  1.  
  1. <?xml version="1.0" encoding="utf-8"?>
  1. <authorization>
  1. <expiration>2012-03-28T23:30:44.463+03:00</expiration>
  1. <user>https://api.sugarsync.com/user/5664947</user>
  1. </authorization>

说明:

  1. accessToken在response的header中,参数名为location
  2. body中包含过期时间和用户信息uri
  3. user的最后一个数字字符串即为userid,频繁用于后续api
  4. body为xml格式,需要不同平台下的解析,iOS自带解析委托为XMLParseDelegate
  5. 得到的过期时间为世界标准时间UTC格式,需要转换为当地时间,具体参考平台方法

Retrieving User Information

HTTP Request Example

  1. GET https://api.sugarsync.com/user/566494 HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com

Response Example

  1. HTTP/1.1 200 OK
  1. Content-Type: application/xml; charset=UTF-8
  1. Date: Fri, 22 Oct 2011 08:01:54 GMT
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5
  1. Transfer-Encoding: chunked
  1.  
  1. <?xml version="1.0" encoding="UTF-8"?>
  1. <user>
  1.   <username>jsmith@sugarsync.com</username>
  1.   <nickname>jsmith</nickname>
  1.   <quota>
  1.     <limit>2000000000</limit>
  1.     <usage>345000000</usage>
  1.   <salt>8ijYg==</salt>
  1.   </quota>
  1.   <workspaces>https://api.sugarsync.com/user/566494/workspaces/contents</workspaces>
  1.   <syncfolders>https://api.sugarsync.com/566494/folders/contents</syncfolders>
  1.   <deleted>https://api.sugarsync.com/folder/:sc:566494:9</deleted>
  1.   <magicBriefcase>https://api.sugarsync.com/folder/:sc:566494:2</magicBriefcase>
  1.   <webArchive>https://api.sugarsync.com/folder/:sc:566494:1</webArchive>
  1.   <mobilePhotos>https://api.sugarsync.com/folder/:sc:566494:3</mobilePhotos>
  1.   <albums>https://api.sugarsync.com/566494/albums/contents<albums/>
  1.   <recentActivities>https://api.sugarsync.com/user/566494/recentActivities/contents</recentActivities>
  1.   <receivedShares>https://api.sugarsync.com/user/566494/receivedShares/contents</receivedShares>
  1.   <publicLinks>https://api.sugarsync.com/user/566494/publicLinks/contents</publicLinks>
  1.   <maximumPublicLinkSize>25</maximumPublicLinkSize>
  1. </user>

说明:

1.  至此请求头中的Authorization都为accessToken,且必须

2.  Xml中参数很多,主要关注syncfolders和magicBriefcase两个参数

3.  Syncfolders表示网盘根目录,默认有一个子文件夹“My SugarSync”,为自动创建,且不能编辑该文件夹

4.  magicBriefcase表示文件夹“My SugarSync”

5.  特别注意,Sugarsync网盘不支持在根目录下创建文件,只允许创建文件夹,而My SugarSync文件夹固定且子目录无限制,故可以在其目录下创建应用根目录

Retrieving Folder Contents

HTTP Request Example

  1. GET https://api.sugarsync.com/folder/:sc:566494:5/contents HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com

Response Example

  1. HTTP/1.1 200 OK
  1. Content-Type: application/xml; charset=UTF-8
  1. Date: Tue, 29 Nov 2011 23:06:11 GMT
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5
  1. Transfer-Encoding: chunked
  1.  
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  1. <collectionContents start="0" hasMore="false" end="4">
  1. <collection type="folder">
  1.   <displayName>100ANDRO</displayName>
  1.   <ref>https://api.sugarsync.com/folder/:sc:566494:6552993_17248</ref>
  1.   <contents>https://api.sugarsync.com/folder/:sc:566494:6552993_17248/contents</contents>
  1. </collection>
  1. <collection type="folder">
  1.   <displayName>2010-10-10</displayName>
  1.   <ref>https://api.sugarsync.com/folder/:sc:566494:6552993_17250</ref>
  1.   <contents>https://api.sugarsync.com/folder/:sc:566494:6552993_17250/contents</contents>
  1. </collection>
  1. <file>
  1.   <displayName>AbeLincoln.jpg</displayName>
  1.   <ref>https://api.sugarsync.com/file/:sc:566494:6552993_17252</ref>
  1.   <size>38539</size>
  1.   <lastModified>2010-02-11T15:26:52.000-08:00</lastModified>
  1.   <mediaType>image/jpeg</mediaType>
  1.   <presentOnServer>true</presentOnServer>
  1.   <fileData>https://api.sugarsync.com/file/:sc:566494:6552993_17252/data</fileData>
  1. </file>
  1. <file>
  1.   <displayName>GeorgeWashington.jpg</displayName>
  1.   <ref>https://api.sugarsync.com/file/:sc:566494:6552993_17254</ref>
  1.   <size>956022</size>
  1.   <lastModified>2011-11-11T07:48:10.000-08:00</lastModified>
  1.   <mediaType>image/jpeg</mediaType>
  1.   <presentOnServer>true</presentOnServer>
  1.   <fileData>https://api.sugarsync.com/file/:sc:566494:6552993_17254/data</fileData>
  1. </file>
  1. </collectionContents>

说明:

1.    经过尝试,发现实例中url代表一般路径,但是当访问根目录时候,需要上一个api中得到的syncfolders参数

2.    一般文件或者文件夹的id为“:sc:用户id:文件夹标识id”,可通过请求父文件夹得到contents,body中“ref”参数即为文件或者文件夹id。

3.    请求时候,可以在url后添加“?type=folder”或者“?type=file”,分别得到文件或者文件夹集合

4.    修改时间同样为世界时间UTC

Creating a Folder

HTTP Request Example

  1. POST https://api.sugarsync.com/folder/:sc:566494:4 HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com
  1. Content-Length: 294
  1. Content-Type: application/xml; charset=UTF-8
  1.  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  1. <folder>
  1.    <displayName>work-docs</displayName>
  1. </folder>

Response Example

  1. HTTP/1.1 201 Created
  1. Content-Type: application/octet-stream; charset=UTF-8
  1. Content-Length: 0
  1. Date: Wed, 14 Dec 2011 19:35:02 GMT
  1. Location: https://api.sugarsync.com/folder/:sc:566494:190_123294339
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5

说明:

1.    如果一直返回错误,保证accessToken和文件夹名正确前提下,那肯定是url有问题,文件夹父文件夹id有误

2.    Body中location即为创建文件夹的uri

Deleting a Folder

HTTP Request Example

  1. DELETE https://api.sugarsync.com/folder/:sc:566494:190_123279794 HTTP/1.1
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com
  1. Content-Length: 294
  1. Content-Type: application/xml; charset=UTF-8

Response example

  1. HTTP/1/1 204 No Content
  1. Content-Type: application/octet-stream; charset=UTF-8
  1. Content-Length: 0
  1. Date: Tue, 20 Dec 2011 18:29:20 GMT
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5

Deleting a File

HTTP Request Example

  1. DELETE https://api.sugarsync.com/file/:sc:566494:190_138381019 HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com

Response Example

  1. HTTP/1/1 204 No Content
  1. Content-Type: application/octet-stream; charset=UTF-8
  1. Content-Length: 0
  1. Date: Tue, 03 Jan 2012 21:24:45 GMT
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5

Retrieving File Data

HTTP Request Example

  1. GET https://api.sugarsync.com/file/:sc:566494:6552993_66025/data HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com

Response Example

  1. HTTP/1.1 200 OK
  1. Content-Type: application/xml; charset=UTF-8
  1. Content-Length: 1502167
  1. Date: Wed, 04 Jan 2012 19:31:29 GMT
  1. Accept-Ranges: bytes
  1. Content-Disposition: attachment; filename*=UTF-8''PineCreek5_120411.jpg
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5

说明:

url其实就是file的uri加上“/data”。

Creating a File

HTTP Request Example

  1. POST https://api.sugarsync.com/folder/:sc:566494:5 HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com
  1. Content-Length: 294
  1. Content-Type: application/xml; charset=UTF-8
  1.  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  1. <file>
  1.   <displayName>Winter2012.jpg</displayName>
  1.   <mediaType>image/jpeg</mediaType>
  1. </file>

Response Example

  1. HTTP/1.1 201 Created
  1. Content-Type: application/octet-stream; charset=UTF-8
  1. Content-Length: 0
  1. Date: Mon, 02 Jan 2012 22:27:00 GMT
  1. Location: https://api.sugarsync.com/file/:sc:566494:190_137264710
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5

说明:

1.    这个api是和upload file一起使用的。因为SugarSync采用id来标识文件和文件夹,所以上传文件之前,需要给文件先创建一个占位id。

2.    请求的body里面为创建的文件名和文件格式

Uploading File Data

HTTP Request Example

  1. PUT https://api.sugarsync.com/file/:sc:566494:6552993_66025/data HTTP/1.1
  1. Authorization: https://api.sugarsync.com/authorization/SmZ8zlrkR8j0oefVmmD4dUD83...
  1. User-Agent: Jakarta Commons-HttpClient/3.1
  1. Host: api.sugarsync.com
  1. Content-Length: 1431

Response Example

  1. HTTP/1.1 204 OK
  1. Content-Type: application/octet-stream; charset=UTF-8
  1. Content-Length: 0
  1. Date: Wed, 04 Jan 2012 21:58:25 GMT
  1. Access-Control-Allow-Origin: *
  1. Server: Noelios-Restlet-Engine/1.1.5

SugarSync的API总结的更多相关文章

  1. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  2. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  3. 几个有趣的WEB设备API(二)

    浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...

  4. html5 canvas常用api总结(三)--图像变换API

    canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...

  5. JavaScript 对数据处理的5个API

    JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...

  6. ES5对Array增强的9个API

    为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...

  7. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  8. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

  9. 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...

随机推荐

  1. Composer常见问题

    Composer常见问题 原文链接:Composer常见问题 安装了Composer后,运行composer --version,查看Composer的版本号.如果出现下面的提示,那么软件安装成功. ...

  2. 大数据系列修炼-Scala课程09

    Option使用和实现内幕源码揭晓 1.Option中的sealed关键字解析:Option中用了sealed,定义的case class与case object必须在同一个文件中.Option在模式 ...

  3. BST(Binary Search Tree)

    原文链接:http://blog.csdn.net/jarily/article/details/8679280 /****************************************** ...

  4. SimpleInjector与MVC4集成,与Web Api集成,以及通过属性注入演示

    SimpleInjector与MVC4集成,与Web Api集成,以及通过属性注入演示   1,与MVC集成 见http://simpleinjector.codeplex.com/wikipage? ...

  5. C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化

    这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...

  6. Visual Studio-Sequence Diagram

    UML Design Via Visual Studio-Sequence Diagram 本文主要介绍在Visual Studio中设计时序图,内容如下: 何时使用时序图 时序图元素介绍 条件.循环 ...

  7. Winform中node.Text重命名时窗口无响应假死的解决方法

    用户控件中有一个树,窗体使用了这个控件,但是重命名时执行node.text="XXXX" 执行了很长时间,大约9s,在此期间winform界面假死,尝试过多线程异步委托的方式来操作 ...

  8. 批量执行SQL文件

    原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要 ...

  9. javascript如何解析json对javascript如何解析json对象并动态赋值到select列表象并动态赋值到select列表

    原文 javascript如何解析json对象并动态赋值到select列表 JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScri ...

  10. 什么是MEAN全堆栈javascript开发框架

    什么是MEAN全堆栈javascript开发框架 使用JavaScript能够完整迅速做出Web应用程序,目前一套工具包括MongoDB.ExpressJS,AngularJS和Node.js越来越受 ...