A Cloud Storage Software API

1,118 views

Published on

By Miguel De Buf (Nomadesk) at CloudCamp Ghent 2010

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,118
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A Cloud Storage Software API

  1. 1. A Cloud Storage Software API<br />Miguel De Buf<br />CTO, Nomadesk<br />1<br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />
  2. 2. What is nomadesk ?<br />The easiest and most secure way to share, synchronize and backup files - wherever you are, online or offline!<br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />2<br />
  3. 3. Nomadesk = cloudstorageatits best<br />Cloud storage : storage… and more!<br /><ul><li>Your files in the cloud = peaceof mind
  4. 4. Convenient – alwaysavailable
  5. 5. Safe – alwaysbacked up
  6. 6. Takingadvantage of the cloud
  7. 7. Sharing
  8. 8. Collaboration</li></ul>3<br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />
  9. 9. Sharing - widget<br />http://wonderewereld.webs.com/fotos.htm<br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />4<br />
  10. 10. Account Management API<br /><ul><li>REST-like API, transport over HTTP(S)
  11. 11. GET
  12. 12. POST
  13. 13. XML POST
  14. 14. Example :
  15. 15. $token = logon($user, $pass)
  16. 16. $xml = getaccountinfo($token)
  17. 17. $xml = getfileservers($token)
  18. 18. $xml = …</li></ul>This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />5<br />
  19. 19. $xml = logon($user, $pass)<br /><ul><li>Request (GET)</li></ul>http://localhost/nomadesk-ctrller/api.php?Task=Logon&Email=miguel.debuf@nomadesk.com&Password=vandaag<br /><ul><li>Response (XML)</li></ul><?xml version="1.0" encoding="utf-8" ?><br /><Response><br /> <Status>1</Status><br /> <Message>Success</Message><br /> <Token>69ph529brie6hbaktpsb490ce4</Token><br /> <AccountInfo><br /> <FirstName>sssssss</FirstName><br /> <LastName>aaaaaaa</LastName><br /> <Email>miguel.debuf@nomadesk.com</Email><br /> <Language>en-us</Language><br /> <IsTrial>false</IsTrial><br /> <BrandingID>NMD</BrandingID><br /> </AccountInfo><br /></Response><br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />6<br />
  20. 20. File Management API<br /><ul><li>API calls executed on a fileserver !
  21. 21. Request (pseudo-code)
  22. 22. ls($token, $fs, $path)
  23. 23. Response (XML)</li></ul><Response><br /> <Status>1</Status><br /> <Message></Message><br /> <FileInfos><br /> <FileInfo><br /> <Name>abc.txt</Name><br /> <Path>/directory/</Path><br /> <IsFolder>false</IsFolder><br /> <LastModifiedDstamp>1247989470</LastModifiedDstamp><br /> <Size>1247990693</Size><br /> </FileInfo><br /> <FileInfos><br /></Response><br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />7<br />
  24. 24. File Management API<br /><ul><li>[$token, $fs] skipped for clarity…
  25. 25. mkdir($folder)
  26. 26. fileexists($folder)
  27. 27. rm($path)
  28. 28. mv($oldpath, $newpath)
  29. 29. copy($srcpath, $destpath)
  30. 30. $bin = download($path)
  31. 31. upload -> FILE POST
  32. 32. Snapshots/revisions can be taken
  33. 33. createrevision($path, $comments)
  34. 34. restorerevision($path, $rev, $destpath, $overwrite)
  35. 35. removerevision($path, $rev)
  36. 36. …</li></ul>This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />8<br />
  37. 37. Sharing API<br /><ul><li>Share your files with others.
  38. 38. 4 types of sharing
  39. 39. Inviting Users onto your Fileserver
  40. 40. Create/Send File Links
  41. 41. Send a file to someone (replace email attachment)
  42. 42. Tweet a file
  43. 43. Publish a file on Facebook, on your blog, …
  44. 44. Create/Send Folder Links
  45. 45. Grant people one-time (ro/rw) access to one of your folders
  46. 46. Create Widgets
  47. 47. Publish content on the web (blog, cms, …)</li></ul>This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />9<br />
  48. 48. Sharing API<br /><ul><li>More fileserver management API calls
  49. 49. [$token, $fs] skipped…
  50. 50. Work in team !
  51. 51. inviteuser($users[], $ro, $msg, $opts…)
  52. 52. canceluser($user)
  53. 53. …</li></ul>This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />10<br />
  54. 54. Inviteuser($users[], $msg, …)<br /><ul><li>Response</li></ul><Response><br /> <Status>1</Status><br /> <Message></Message><br /> <Users><br /> <AccountInfo><br /> <FirstName>first</FirstName><br /> <LastName>last</LastName><br /> <Email>guest1@nomadesk.com</Email><br /> <Address></Address><br /> <Address2></Address2><br /> <Status>Guest</Status><br /> <Access>ReadWrite</Access><br /> ...<br /> </AccountInfo><br /> <AccountInfo><br /> <FirstName>First Name</FirstName><br /> <LastName>Last Name</LastName><br /> <Email>owner@nomadesk.com</Email><br /> <Status>Owner</Status><br /> ...<br /> </AccountInfo><br /> </Users><br /></Response> <br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />11<br />
  55. 55. Sharing API<br /><ul><li>More file management API calls
  56. 56. File- and folderlinks
  57. 57. getfilelink($path, $expiry, $notify, $numdownloads, $pwd, …)
  58. 58. sendfilelink($path, …)
  59. 59. sendfolderlink($path, …)
  60. 60. Example response</li></ul><?xml version="1.0" encoding="utf-8" ?><br /><Response><br /> <Status>1</Status><br /> <Message></Message><br /> <FileLink>https://nmd.sk/a77ac94e3c</FileLink><br /></Response> <br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />12<br />
  61. 61. Contact Info<br />Miguel DE BUF<br />Co-founder, CTO<br />miguel.debuf@nomadesk.com<br />http://www.nomadesk.com<br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />13<br />
  62. 62. Questions ?<br />This document is strictly confidential and must not be given to any third party, or be reprinted or copied in whole or in part without the prior consent of the author. 2010 Nomadesk NV<br />14<br />

×