The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by nic3ts, 2017-07-30 06:42:42

theoritiki

theoritiki

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


Click to View FlipBook Version