Dostarczanie plików
Dla każdej transakcji dostarczamy Państwu linki umożliwiające dostęp do plików. Linki te mogą Państwo wykorzystać na jeden z dwóch opisanych poniżej sposobów. Informacje o tym, w jaki sposób otrzymają Państwo linki można znaleźć w sekcji ping zwrotny.
Bezpośrednie udostępnienie klientowi
Najprostszym rozwiązaniem jest bezpośrednie udostępnienie linków klientowi. Są one ważne bezterminowo i kierują bezpośrednio do plików przygotowanych dla danego klienta. Pliki są serwowane z domeny pobierz.elibri.com.pl
Pliki przygotowane dla klienta są jednak tylko trzymane przez kilka tygodni - po tym czasie są kasowane. Jeśli klient kliknie na linka po tym, jak plik zostanie usunięty, system pokaże mu komunikat o tym, że plik jest przygotowywany. Plik z książką lub audbiobookiem zostanie pobrany automatycznie, jak tylko plik zostanie na nowo przygotowany.
Wykorzystanie wewnętrzne
W niektórych sytuacjach mogą Państwo chcieć się zdecydować na obsłużenie linków w sposób zupełnie niewidoczny dla klienta. W takiej sytuacji konieczne będzie wykonanie przez Państwa głębszej integracji.
W tym scenariuszu, powinni Państwo zapisać dostarczone przez nas linki do plików oraz (również zawarty w pingu zwrotnym) link do statusu transakcji. A następnie, w reakcji na wysłane przez klienta żądanie pobrania plików, powinni Państwo sprawdzić status pliku i w oparciu o tę informację postąpić zgodnie z poniższymi instrukcjami.
Status transakcji zawiera informacje o tym, jakie formaty są dostępne i czy pliki dostępne są do pobrania od ręki, czy wymagają ponownego watermarkowania. Przykładowy status wygląda tak:
{ "epub": { "status": "absent", "downloads": [], "refresh_url": "https://pobierz.elibri.com.pl/refresh/123/asdf/epub" }, "pdf": { "status": "refreshing", "downloads": [] }, "mobi": { "status": "ok", "downloads": [ "2022-07-06T13:19:13.941+02:00" ], "file_size": 681574 "download_url": "https://pobierz.elibri.com.pl/d/123/asdf.mobi" } }
Jeśli status formatu, o który prosi klient jest ok mogą Państwo zaserwować klientowi plik korzystając z linku do tego formatu. Link mogą Państwo odczytać pod kluczem download_url, jak w powyższym przykładzie lub wykorzystać link, który wcześniej otrzymali Państwo w pingu zwrotnym. Linki te są identyczne i dostępne w obu miejscach dla Państwa wygody.
Jeśli natomiast status to absent, powinni Państwo skorzystać z linku dostępnego w polu refresh_url i wykonać na ten adres żądanie POST. Po tym żądaniu rozpoczniemy ponowne przygotowanie pliku, co może zająć około pół minuty. W tym czasie powinni Państwo okresowo sprawdzać ponownie status (w czasie odświeżania status formatu będzie podawany jako refreshing) i — gdy status otrzyma wartość ok — zaserwować plik klientowi.
Ponieważ ponowne przygotowanie pliku może zająć około pół minuty, nie powinni Państwo całej tej operacji robić w ramach jednego żądania HTTP. Prawdopodobnie najlepszym rozwiązaniem będzie wyświetlenie klientowi (zaraz po zamówieniu odświeżenia pliku) komunikatu z informacją, że plik jest przygotowywany i okresowe sprawdzanie statusu przez osobne żądania do Państwa serwera. Mogą też Państwo rozważyć wykorzystanie WebSocketów lub innego sposobu na "wypchnięcie" informacji o gotowym pliku z Państwa serwera do przeglądarki klienta.