Η υπηρεσία IdikaFileService, προσφέρει αποθηκευτικό χώρο (που γίνεται backup) για αρχεία σε άλλες εφαρμογές.
Ο τρόπος επικοινωνίας μεταξύ των εφαρμογών γίνεται μέσα από ένα Rest API και όλες οι δημοσιευμένες μέθοδοι μπορείτε να τις βρείτε εδώ . Όλες οι μέθοδοι απαιτούν HTTP Basic Authentication. Για απόκτηση κωδικών χρήσης, απευθυνθείτε στο Τμήμα Ανάπτυξης Εφαρμογών της Διεύθυνσης Έρευνας και Ανάπτυξης.
Για το ανέβασμα (upload) των αρχείων γίνεται μέσω multipart/form-data. Υπάρχει μια φόρμα εδώ για δοκιμές. Ως απάντηση επιστρέφεται ένα JSON object, όπου περιγράφονται τα μεταδεδομένα (metadata) του αρχείου. Το μοναδικό κλειδί (Id) είναι το στοιχείο που απαιτείται από τις υπόλοιπες μεθόδους για την ταυτοποίηση του αρχείου.
Για το κατέβασμα (download) των αρχείων, υπάρχει μέθοδος όπου επιστρέφει τα δεδομένα (binary data) στο HTTP Response, έχοντας θέσει κατάλληλα Headers όπως το Content Type. Δεν υπάρχει δημοσιοευμένει μέθοδος που να μπορεί να προσφέρει το αρχείο στους τελικούς χρήστες. Όλες οι μέθοδοι ύπαρχουν μόνο μέσα στο εσωτερικό δίκτυο της ΗΔΙΚΑ.
Υπάρχει ένα library (dll) που προσφέρει ένα βασικό client για εύκολη ενσωμάτωση σε διάφορα .ΝΕΤ projects. Η χρήση του φαίνεται παρακάτω.
Αρχικοποίηση του client:
var api_client = new IdikaFileLibrary.Client(username, password);
Ανέβασμα αρχείου:
// Setup the FileInfo Object
var file_path = Path.Combine("path\\to\\document\\", "filename.pdf");
var file_name = Path.GetFileName(file_path);
var content_type = MimeMapping.GetMimeMapping(file_name);
FileInfo my_file = new FileInfo(file_path);
var file = new FileInfoPart(my_file, file_name, content_type);
// Upload
var uploaded_file = await api_client.HelperUploadUpdateIdentical(file);
Το συγκεκριμένο παράδειγμα χρησιμοποιήσε το αντικείμενο FileInfoPart, αλλά δύνονται οι δυνατότητες για ByteArreyPart
και StreamPart. Ακόμη υπάρχουν δύο μέθοδοι για ανέβασμα αρχείου: Η HelperUploadUpdateIdentical όπου αν ανεβεί ένα αρχείο
που ήδη υπάρχει το repository, απλά ανανεώνει τα metadata, και η HelperUploadAllowIdentical που θα δημιουργήσει ένα νέο αντίγραφο
του αρχείου.
Αναζήτηση metadata πληροφοριών:
var details = await api_client.Api.Details(uploaded_file.Id);
var updated_file = await api_client.HelperUpdate(uploaded_file.Id, file_new);
Κατέβασμα αρχείου:
var download = await api_client.Api.Download(uploaded_file.Id); byte[] x = await download.Content.ReadAsByteArrayAsync();
Διαγραφή Αρχείου:
await api_client.Api.Remove(uploaded_file.Id);