University of the Aegean, Samos, 2016-2017
Information & Communication Systems Engineering - ICSD
Σχεδιασμός & Ανάπτυξη
Εφαρμογών Κινητού Υπολογισμού
Presentation of a Mobile Technology Topic:
Συγκριτική μελέτη για τα API των πιο σημαντικών file-sharing εφαρμογών.
Χρήστος Γκουμόπουλος
(Διδάσκων)
Νίκος Τρίτσης Χρήστος Αυλακιώτης
(icsd11162) (icsd12015)
University of the Aegean, Samos, 2016-2017
Information & Communication Systems Engineering - ICSD
Σχεδιασμός & Ανάπτυξη
Εφαρμογών Κινητού Υπολογισμού
Presentation of a Mobile Technology Topic:
Μελέτη για τα API των πιο σημαντικών file-sharing εφαρμογών.
Χρήστος Γκουμόπουλος
(Διδάσκων)
Νίκος Τρίτσης Αυλακιώτης Χρήστος
(icsd11162) (icsd12015)
Εισαγωγή
Ένα από τα πιο κοινά πράγματα που οι άνθρωποι χρειάζεται να κάνουν είναι να μεταφέρουν
αρχεία από το κινητό, το tablet ή τον υπολογιστή τους. Για την αντιμετώπιση αυτού του προ-
βλήματος, οι προγραμματιστές εφαρμογών κινητού υπολογισμού μπορούν να χρησιμοποιή-
σουν μια πληθώρα απο προγραμμτιστικά api’s με δυνατότητες απο απλό file sharing μεταξύ
συσκευών, μέχρι τη διαχείριση μια αποθήκης δεδομένων cloud. Υπάρχουν πράγματι αρκετοί
τρόποι (file-sharing εφαρμογές) για να μεταφέρετε αρχεία από το ένα σημείο στο άλλο. Αυτό
ακριβώς θα πραγματευτούμε σε αυτή την εργασία.
Θα αναλύσουμε τις πιο σημεντικές (κατα τη γνώμη μας) file-sharing εφαρμογές και τα API
τους. Ονομαστικά:
• Box
• Dropbox
• Egnyte
• Google Drive
• iCloud
• Share File
• Microsoft One Drive
• Media Fire
• Sugar Sync
• YouSendIt
Σημείωση:
Designed for Two-Page View & Show Cover Page (PDF reader settings)
1. Box
Δυνατότητες του API:
Το Box Content API παρέχει πρόσβαση για την εξασφάλιση της διαχείρισης περιεχομένου και
των χαρακτηριστικώνν εμπειρίας χρήσης στην εφαρμογή μας. Προσπαθεί να είναι RESTful και
οργανώνεται γύρω από τους κύριους πόρους του Box web interface.
Για να γίνει χρήση του API, πριν απο οτιδήποτε, θα πρέπει να δημιουργθεί ένας δωρεάν λογα-
ριασμός ασφαλείας που μπορείτε να δοκιμάσετε το API και να εγγραφείτε για ένα κλειδί API,
έτσι ώστε να μπορείτε να πραγματοποιείτε κλήσεις API.
Για τη δημιουργία custom εφαρμογών, οι developers δηλαδή που επιθυμούν να αξιοποιήσουν
το Security Content API χωρίς να απαιτείται ένας λογαριασμός ασφαλείας, θα πρέπει να κά-
νουν χρήση της Security Platform.
Προκειμένου να αναπτυχθούν προσαρμοσμένες εφαρμογές για τους χρήστες με ένα λογαρια-
σμό ασφαλείας, μπορείτε να ακολουθήσετε τις οδηγίες ελέγχου ταυτότητας χρησιμοποιώντας
OAuth 2.
Τέλος, το Postman, διαθέσιμο στο Chrome Web Store, είναι μια εφαρμογή ικανή να πάρει πρό-
σβαση απ’το Box Content API. Αρκεί να κάνουμε μια αναζήτηση στο internet για ‘Box Content
API Postman Collections’.
Διαθέσιμα SDK:
Java
.NET
Node.js
Python
Ruby
Chrome
Salesforce
iOS
Android
Windows
Extra δυνατότητες:
Το Box File Picker επιτρέπει στους χρήστες της εφαρμογής μας να μοιράζονται το περιεχόμενο
του Box, με την εφαρμογή σας - χωρίς τη χρήση OAuth! Με ένα απόσπασμα (snippet) κώδικα
Javascript, ο Box File Picker έχει τη δυνατότητα να ενσωματωθεί ομαλά στην εφαρμογή σας.
Υπάρχουν δύο τρόποι για να χρησιμοποιήσετε τον Box File Picker. Αν ψάχνουμε για κάτι γρήγο-
ρο και απλό, χρησιμοποιούμε το HTML Widget. Εάν χρειαζόμαστε κάποιο επιπλέον έλεγχο και
δυνατότητες, χρησιμοποιούμε Javascript APIs.
Πηγές:
API
https://docs.box.com/reference
SDKs
https://docs.box.com/page/sdks
App Manager
https://app.box.com/developers/services
Authentication
https://docs.box.com/docs/oauth-20
https://docs.box.com/docs/getting-started-box-integration
Webhooks and Notifications
https://docs.box.com/reference#webhook-notifications
Extra
https://docs.box.com/docs/the-box-file-picker
https://docs.box.com/docs/box-embed
https://docs.box.com/docs/box-postman-collection
https://docs.box.com/docs/box-javascript-preview-sdk
2. Dropbox
Δυνατότητες του API:
To API του dropbox προσφέρει στους developers την ευκαιρία να δώσουν στις εφαρμογές τους
τις εξής δυνατότητες:
• Διασύνδεση με το cloud των χρηστών, μέσω του πρωτόκολλου OAuth 2.
• Διαχείριση αρχείων και των φακέλων που βρίσκονται στο cloud των χρηστών (ανέβασμα,
κατέβασμα, δημιουργία, αναζήτηση, αντιγραφή, μετακίνηση, διαγράφη, επαναφορά άλλα
και εμφάνιση αρχείων*.
• Επεξεργασία των ιδιοτήτων κοινής χρήσης των αρχείων και των φακέλων που βρίσκονται
στο cloud των χρηστών.
• Προβολή λεπτομερειών του λογαριασμού των χρηστών.
*Υποστηριζόμενοι τύποι αρχείων: doc, .docx, .docm, .ppt, .pps, .ppsx, .ppsm, .pptx, .pptm, .xls,
.xlsx, .xlsm, .rtf.
Διαθέσιμα SDK:
Swift
Objective-C
Python
.NET
Java
JavaScript
HTTP
Extra δυνατότητες:
Λήψη ειδοποιήσεων σε πραγματικό χρόνο όταν τα αρχεία των χρηστών αλλάζουν στο cloud
μέσω Webhooks.
Έτοιμα συστατικά JavaScript (Chooser, Saver) για γρήγορο ανέβασμα και κατέβασμα αρχείων
από το cloud των χρηστών.
Στατιστικά για τις εφαρμογές των developer
Πηγές:
API
https://www.dropbox.com/developers
SDKs
https://www.dropbox.com/developers/documentation
App Manager
https://www.dropbox.com/developers/apps/ + Analytics
Migrate App from older version
https://www.dropbox.com/developers/reference/migration-guide
Authentication
https://www.dropbox.com/developers/reference/oauth-guide#oauth-2-flow
Webhooks and Notifications
https://www.dropbox.com/developers/reference/webhooks
Extra
https://www.dropbox.com/developers/chooser https://www.dropbox.com/developers/saver
3. Egnyte
Δυνατότητες του API:
Το Egnyte Public API επιτρέπει τη δημιουργία εφαρμογών που αλληλεπιδρούν με ασφάλεια με
το Egnyte με τους ακόλουθους τρόπους:
• Πρόσβαση, τροποποίηση, και αναζήτηση για το περιεχόμενο του συστήματος αρχείων
• Διαχείριση χρηστών και ομάδων
• Δημιουργία εκθέσεων ελέγχου
• Δημιουργία και διαχείριση συνδέσεων αρχείων και φακέλων
Τα APIs του Egnyte είναι RESTful, και συμμορφώνονται με τα ακόλουθα πρότυπα:
• αίτημα API και ανταπόκριση σώματα JSON μορφοποιηθεί. Να είστε βέβαιος να ορίσετε το
«Content-Type: application / JSON» κεφαλίδα σχετικά με τις αιτήσεις που έχουν σώματα.
• Όλα τα Strings πρέπει να είναι UTF-8 κωδικοποίηση.
• Όλες οι κλήσεις API πρέπει να γίνει μέσω HTTPS για να εξασφαλιστεί η ασφάλεια.Οι προ-
σθήκες αρχείων και λήψεις μέσω του API περιορίζεται από το μέγιστο μέγεθος αρχείου που
επιτρέπεται για το λογαριασμό σας Egnyte.
Διαθέσιμα SDK:
• JavaScript
• Pyhton
• Ruby
• .NET
Extra δυνατότητες:
• Το Audit Reporting API σας επιτρέπει να δημιουργήσετε μέσω προγραμματισμού και να
ανακτήσετε εκθέσεις σχετικά με την είσοδο δραστηριότητας, δράσεις αρχείων, και αλλαγές
άδειας. Το πεδίο εφαρμογής αυτών των αναφορών σας δίνει ουσιαστικά μια ολοκληρωμέ-
νη ματιά για τη δραστηριότητα στο λογαριασμό σας.
• Το Event API επιτρέπει στην αίτησή σας να μάθει σχετικά με τη δραστηριότητα στο Egnyte.
Αυτό σημαίνει ότι μπορείτε να μάθετε τι έχει συμβεί από μια δεδομένη χρονική στιγμή,
αφήνοντας την εφαρμογή σας να αντιδράσει με τη δραστηριότητα. Επί του παρόντος, αυτό
το API είναι σε beta και περιορίζεται να καταθέσει τη δραστηριότητα του συστήματος και
των σημειώσεων. Θα προστεθούν σταδιακά περισσότεροι τύποι εκδηλώσεων.
Πηγές:
API
https://developers.egnyte.com/docs
SDKs
https://developers.egnyte.com/Egnyte_SDK
Examples
https://www.programmableweb.com/add/sample-source-code
App Manager (FREE for 15 days)
https://developers.egnyte.com/apps/myapps
Authentication
https://developers.egnyte.com/docs/read/Getting_Started
Webhooks and Notifications
https://developers.egnyte.com/docs/Egnyte_Audit_Reporting_API_v1
https://developers.egnyte.com/docs/Events_API
4. Google Drive
Δυνατότητες του API:
Το Google Drive σας δίνει μια ομάδα APIs, μαζί με τις βιβλιοθήκες πελάτη, τη γλώσσα (με συ-
γκεκριμένα παραδείγματα), και την τεκμηρίωση για να σας βοηθήσει να αναπτύξουν εφαρμο-
γές που ενσωματώνουν με το Drive.
Στην πλατφόρμα Drive, χρησιμοποιείται ένα μοντέλο που βασίζεται στις ταυτότητες αρχείων
και όχι μια παραδοσιακή ιεραρχία των φακέλων - όταν εργάζεστε με αρχεία και φακέλους στο
Google Drive.
Η βασική λειτουργικότητα των εφαρμογών Drive είναι να κατεβάσετε και να ανεβάσετε τα αρ-
χεία στο Google Drive. Ωστόσο, η πλατφόρμα Drive προσφέρει πολύ περισσότερα από απλώς
αποθήκευσης.
Διαθέσιμα SDK:
.NET
Android
Go
iOS
Java
JavaScript
PHP
Python
Ruby
Extra δυνατότητες:
Google Realtime API
Το Google Realtime API παρέχει τη συνεργασία ως υπηρεσία για τα αρχεία στο Google Drive
μέσω της χρήσης των λειτουργικών μετασχηματισμών. Το Google Realtime API είναι μια βι-
βλιοθήκη JavaScript που φιλοξενείται από την Google που παρέχει συνεργατικά αντικείμενα,
γεγονότα, και οι μεθόδους για τη δημιουργία συνεργατικών εφαρμογών.
Πηγές:
API
https://developers.google.com/drive/v3/web/about-sdk
SDKs
https://developers.google.com/drive/v3/web/about-sdk
App Manager
https://console.developers.google.com/flows/enableapi?apiid=drive
Examples
https://developers.google.com/drive/v3/web/examples/
https://developers.google.com/drive/web/downloads
Migrate App from older version
https://developers.google.com/drive/v2/web/migration#v1
https://developers.google.com/drive/v3/web/migration
Authentication
https://developers.google.com/drive/v3/web/about-auth
Webhooks and Notifications
https://developers.google.com/drive/v3/web/push
Extra
https://developers.google.com/google-apps/realtime/overview
https://console.developers.google.com/apis/library?project=testdat-149806
5. iCloud
Δυνατότητες του API:
Το CloudKit framework της Apple παρέχει διεπαφές για τη μετακίνηση δεδομένων μεταξύ των
εφαρμογών σας και των iCloud containers. Κάνοντας χρήση του CloudKit μας μπορούμε να
πάρουτε τα υπάρχοντα δεδομένα της εφαρμογής μας και να τα αποθηκεύσουμε στο σύννεφο,
έτσι ώστε ο χρήστης μπορεί να έχει πρόσβαση απο πολλαπλές συσκευές. Μπορούμε επίσης να
αποθηκεύσουτε τα δεδομένα σε ένα δημόσιο χώρο, όπου όλοι οι χρήστες μπορούν να έχουν
πρόσβαση. Μπορούμε επίσης να χρησιμοποιήσουμε το CloudKit JS για την κατασκευή ενός
web interface που επιτρέπει στους χρήστες να έχουν πρόσβαση στις ίδιες τις δημόσιες και ιδι-
ωτικές βάσεις δεδομένων όπως το CloudKit app, τρέχει σε iOS ή MacOS. Πρέπει να έχουμε μια
ήδη υπάρχουσα εφαρμογή CloudKit με ενεργοποιημένες τις υπηρεσίες web για να χρησιμοποι-
ήσουμε CloudKit JS.
Διαθέσιμα SDK:
Swift
Objective-C
JavaScript
Πηγές:
API
https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/
CloudKitQuickStart/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014987-CH1-SW1
SDKs
https://developer.apple.com/reference/
Samples
https://cdn.apple-cloudkit.com/cloudkit-catalog/
App Manager
https://icloud.developer.apple.com/dashboard/
Authentication
https://cdn.apple-cloudkit.com/cloudkit-catalog/#authentication
6. Share File
Δυνατότητες του API:
Πώς να Δείτε το API
Το ShareFile REST API χρησιμοποιεί ένα υποσύνολο των προδιαγραφών OData. OData είναι ένα
HTTP-based REST API, με πρότυπα για το πώς να περιγράψει αντικείμενα και δράσεις. Μπορεί-
τε να βρείτε περισσότερες λεπτομέρειες σχετικά με OData εδώ και πρόσθετες λεπτομέρειες
σχετικά με την εφαρμογή ShareFile API OData εδώ.
Για να δοκιμάσετε τις λειτουργίες API θα χρειαστείτε ένα βοηθητικό πρόγραμμα HTTP ή επέ-
κταση του προγράμματος περιήγησης. Μερικά ελεύθερα διαθέσιμα παραδείγματα τέτοιων
είναι: Fiddler, Postman, Poster, CURL
Θα χρειαστείτε επίσης ένα κλειδί OAuth2
Διαθέσιμα SDK:
StorageZone Connector
PowerShell
.NET
Java
JavaScript
Πηγές:
API
http://api.sharefile.com/rest/
SDKs
https://api.sharefile.com/rest/oauth2-request.aspx
Samples
http://api.sharefile.com/rest/
Authentication
https://api.sharefile.com/rest/oauth2.aspx
7. Microsoft One Drive
Δυνατότητες του API:
Νέα χαρακτηριστικά συνεχώς προστίθενται στο API για την παροχή πρόσβασης στην εφαρμο-
γής μας σε περισσότερα χαρακτηριστικά που προσφέρει το OneDrive.
Ενσωματώστε την εφαρμογή σας με onedrive
Συνδεθείτε με onedrive, onedrive για επιχειρήσεις, ή τα αρχεία του SharePoint με την onedrive
API.
Webhooks και ειδοποιήσεις
Λάβετε ειδοποιήσεις όταν το περιεχόμενο αλλάζει, ώστε η εφαρμογή σας είναι πάντα up-to-η-
μερομηνία.
φακέλους App
Διαχειριστείτε τα αρχεία πιο εύκολα, δίνοντας την εφαρμογή σας δικό του φάκελο στο
onedrive.
Αποτελεσματική συγχρονισμό αρχείων
Ανίχνευση αλλαγών αρχείων & φακέλων, αποτελεσματικά διατηρώντας μεγάλα σύνολα αρχεί-
ων σε συγχρονισμό.
Υποστήριξη μεγάλων αρχείων
Αξιόπιστα ανεβάσετε μεγάλα αρχεία έως και 10 GB.
υποστήριξη CORS
Καλέστε το onedrive API από το web app σας.
Διαθέσιμα SDK:
Windows
iOS
Android
JavaScript
Python
.NET
Πηγές:
API
https://dev.onedrive.com/README.htm
SDKs
https://dev.onedrive.com/sdks.htm
App Manager
https://dev.onedrive.com/app-registration.htm
Authentication
https://dev.onedrive.com/auth/readme.htm
Webhooks and Notifications
https://dev.onedrive.com/webhooks/webhooks.htm
Extra
https://dev.onedrive.com/ bottom
8. Media Fire
Δυνατότητες του API:
Όταν πραγματοποιείτε μια κλήση API χρησιμοποιώντας τη μέθοδο αιτήματος GET, είναι
επιτρεπτό να κωδικοποιηθεί το URL του query string. Ο διακομιστής θα υπολογίσει το call
signature με δύο παραλλαγές (κωδικοποιημένη και όχι κωδικοποιημένο) ψάχνοντας για μια
ταύτηση.
Το API call signature απαιτείται όταν χρησιμοποιείται το Session Token version 2. Όταν καλεί-
τε το ασφαλές API user/get_session_token και παρέχετε ‘token_version = 2‘, εκτός από την
‘session_token’ θα λάβετε δύο τιμές: ‘secret_key’ και ‘time’. Θα χρειαστεί να χρησιμοποιήσετε
αυτές τις τιμές για να κατασκευάσει μια υπογραφή που θα περάσει μαζί με τυχόν μεταγενέστε-
ρες API κλήσεις που δέχονται ένα συμβολικό συνεδρία.
Η υπογραφή = the Message-Digest (MD5) του «secret_key» modulo 256 + ‘time’ + το URI της
κλήσης API.
Το URI της πρόσκλησης είναι η διεύθυνση URL, εκτός από την υπογραφή και το όνομα κεντρι-
κού υπολογιστή (π.χ. «/1.0/file/get_info.php?quick_key=abcdefghijklmno»).
Μετά από κάθε κλήση API που επιστρέφει στην new_key απάντηση = ναι, θα χρειαστεί να δη-
μιουργήσετε ένα νέο secret_key να χρησιμοποιήσει για την κατασκευή της υπογραφής για την
επόμενη κλήση API. Η παραγωγή αυτού του νέου κλειδιού βασίζεται στην παραλλαγή MINSTD
ενός Linear Congruential Generator (LCG). Ο τύπος που χρησιμοποιείται είναι: New Key = (Old
Key * 16807) modulo 2147483647.
Διαθέσιμα SDK:
Java
JavaScript
Objective-C
PHP
Python
C++
Extra δυνατότητες:
API Tools
API Test Tool
Πηγές:
API
http://www.mediafire.com/developers/core_api/1.5/getting_started/
SDKs
http://www.mediafire.com/developers/sdks_and_tools/
App Manager
http://www.mediafire.com/developers/getting_started/getting_started/
Authentication
http://www.mediafire.com/developers/core_api/1.5/user/#get_session_token
Webhooks and Notifications
http://www.mediafire.com/developers/core_api/1.5/notifications/#notifications_top
Extra
http://www.mediafire.com/developers/tools/api_tools/
9. Sugar Sync
Δυνατότητες του API:
Το SugarSync Platform API χρησιμοποιείται σήμερα από μικρά και μεγάλα projects και επιχει-
ρήσεις με διάφορα επίπεδα ολοκλήρωσης και της πολυπλοκότητας. Αυτές οι εντάξεις κυ-
μαίνονται από απλές επεκτάσεις συντάκτη απλού εγγράφου μέχρι την πλήρη αντιμετώπιση
προβλημάτων πελάτη-που αντιμετωπίζουν οι εφαρμογές του SugarSync σε όλο τον κόσμο για
εκατοντάδες χιλιάδες χρήστες.
Οι βασικές λειτουργίες του API είναι οι εξής:
• Το SugarSync API χρησιμοποιεί μια στυλ-REST αρχιτεκτονική μέσω HTTPS.
• Τα αιτήματα και οι απαντήσεις διαμορφωνονται με απλό XML.
• Τα αρχεία, οι φάκελοι και τα άλλα αντικείμενα του λογαριασμού ενός χρήστη SugarSync
εκπροσωπούνται ως πόροι.
• Κάθε πόρος έχει ένα μοναδικό, για τον χρήστη, μόνιμο, Uniform Resource Identifier (URI).
• Οι πόροι διαβάζονται και τροποποιούνται χρησιμοποιώντας βασικές λειτουργίες HTTP,
όπως GET, POST, PUT και DELETE.
Διαθέσιμα SDK:
HTTP
Java
Πηγές:
API
https://www.sugarsync.com/dev/api/resource-ref.html
Samples
https://www.sugarsync.com/dev/using-api.html - java
App Manager
https://www.sugarsync.com/developer/login;jsessionid=39457C1D6B0D6AB48C7FC30532C817B7
Authentication
https://www.sugarsync.com/dev/api/resource-ref.html
10. YouSendIt
Δυνατότητες του API:
Όλα τα αιτήματα API απαιτούν αυθεντικοποίηση. Οι προγραμματιστές παίρνουν ένα κλειδί API
όταν δημιουργείτε μια εφαρμογή στο developer.yousendit.com. Αυτό το κλειδί πρέπει να περά-
σει ως το HTTP header X-Api-κλειδιά.
Τα περισσότερα από τα YouSendIt APIs απαιτούν μια προσαρμοσμένη κεφαλίδα που ονομάζε-
ται X-Auth-Token. Οι προγραμματιστές χρειάζεται να καλέσουν την είσοδο API και να χρησιμο-
ποιήσετε το επιστρεφόμενο auth-token καθώς η αξία των X-ΑΠΘ-Token κεφαλίδα.
Τα APIs απαιτούν τον User Agent να ρυθμιστεί σε όλες τις κλήσεις. Εάν η εφαρμογή-πελάτης
δεν θέτει πράκτορα χρήστη από προεπιλογή, πρέπει να τεθεί ως X-Original-User-Agent κεφαλί-
δα για όλες τις κλήσεις.
Οι απαντήσεις API μπορεί να είναι XML ή JSON ανάλογα με την αξία Accept header που προ-
βλέπονται στην κλήση API. Η προεπιλογή είναι XML.
Για όλα τα αιτήματα API, τα σφάλματα αναφέρονται πίσω, εντός της απάντησης. Η απάντηση
περιέχει errorStatus με κωδικό και ένα μήνυμα. Οι κωδικοί σφάλματος είναι σύμφωνα με το
πρότυπο HTTP. Σφάλματα χρήστη θα είναι της τάξης των 400-499 και εσωτερικά λάθη υπηρε-
σίας API θα είναι της τάξης των 500-599. Πιο συχνά θα χρησιμοποιούνται κωδικοί κατάστασης
HTTP πρότυπο (π.χ., 401 για μη εξουσιοδοτημένη πρόσβαση).
Επίσης, μια πιο λεπτομερής περιγραφή του σφάλματος παρέχεται στο στοιχείο μήνυμα. Στο
τέλος αυτού του μηνύματος λάθους θα είναι ένα εσωτερικό κωδικό σφάλματος σε παρένθεση
(σε περίπτωση YouSendIt εξυπηρέτησης πελατών ασχολείται για ένα θέμα API, αυτό θα τους
βοηθήσει να διαγνώσετε το πρόβλημα).
Όλα τα APIs απαιτούν HTTPS για να εξασφαλίσει την ασφάλεια των δεδομένων.
Διαθέσιμα SDK:
iOS
Android
.NET
Java
PHP
Πηγές:
API
https://developer.yousendit.com/home
SDKs
https://developer.yousendit.com/home
Samples
https://developer.yousendit.com/resources
App Manager
https://developer.yousendit.com/login/login?r=https%3A%2F%2Fdeveloper.yousendit.com%2Fap
ps%2Fmyapps&h=7674096a923cec0f38191e93ea7a9a3d