209 Upload / download přílohy VoDZ po částech

michal.podzimek@profinit.eu 06.04.2022 20:33

Dobrý den,

uvažujete o tom, že byste pro VoDZ umožnili nahrání přílohy na server pomocí služby UploadAttachment a její stažení pomocí služby DownloadAttachment po částech / zavedli nějakou formu podpory streamování?

Důvodem je to, že při použití stávající implementace (tak, jak jí rozumím) bude docházet k načtení celé přílohy do paměti najednou, což při eventuálním používání příloh o velikosti 1 GB bude mít dopad do paměťových požadavků obsluhující aplikace s dalšími konfiguračními dopady.

Díval jsem se, jak k podobnému problému přistupují jiní provozovatelé, a obvykle tento problém nějak adresují, viz například:

https://developers.google.com/drive/api/guides/manage-uploads

https://developers.google.com/drive/api/guides/manage-downloads

https://developers.google.com/gmail/api/guides/uploads#start-resumable


Děkuji.

209.1 Re: Upload / download přílohy VoDZ po částech

602jsima 07.04.2022 05:50

Dobrý den,

zatím se o tom neuvažuje. Ale velké zprávy jsou na Veřejném testu ISDS rok dopředu právě proto, aby vývojáři měli čas se rozmyslet a vyjádřit se k této problematice, takže úpravy jsou teoreticky možné.

 

Jan Šíma

ISDS

209.2 Re: Upload / download přílohy VoDZ po částech

602jsima 08.04.2022 12:45

Dobrý den,

vyhovovalo by vašemu požadavku, kdyby služba DownloadAttachment měla na vstupu (nepovinné) elementy pro Offset a Size (v bajtech), a při jejich zadání by se vrátila pouze požadovaná část přílohy? Tzn. aplikace by to musela volat opakovaně se zvyšujícím se offsetem a sama si spojovat části dat do výsledného file.

 

Jan Šíma

ISDS

 

209.3 Re: Upload / download přílohy VoDZ po částech

michal.podzimek@profinit.eu 08.04.2022 14:08

Dobrý den,

ano, něco takového si představujeme všude tam, kde by se jinak musel alokovat až 1 GB paměti najednou - dotčených služeb je několik. Předpokládáme, že opravdu velkých zpráv nebude mnoho, takže celkový (denní) počet volání by to mělo zvýšit jen trochu.

Děkuji a přeji hezký den.

209.4 Re: Upload / download přílohy VoDZ po částech

michal.podzimek@profinit.eu 29.04.2022 15:02

Dobrý den,

na základě interních diskusí se kloníme k závěru, že použití nepovinných elementů "Offset" a "Size" (nebo jiného ekvivalentního řešení) by značně zjednodušilo implementaci, resp. eliminovalo problémy, které bychom jinak museli řešit. Jedná se o následující služby:

  • DownloadAttachment
  • BigMessageDownload
  • SignedBigMessageDownload
  • SignedSentBigMessageDownload
  • UploadAttachment (tady bude implementace asi o něco komplikovanější, ještě tam asi přibude něco jako identifikátor dosud nahraného souboru získaného při nahrání první porce; pokud budete vyžadovat ještě nějaký příznak nahrávání poslední části, tak to bude vést na správu stavu souboru - nahrán částečně / nahrán celý // alternativně by se části mohly spojit až při volání CreateBigMessage)
  • eventuálně ještě AuthenticateBigMessage (analogicky jako UploadAttachment)

Jak vypadá proces změny "teoretické možnosti" do nové implementace? / Kdy bude jasné, že s tím můžeme počítat?

Děkujeme a přejeme hezký den.

209.4.1 Re: Re: Upload / download přílohy VoDZ po částech

602jsima 01.05.2022 17:28

Dobrý den,

pravděpodobně se toto zavádět nebude. Jedním z důvodů je, že i když by to šlo u stahování zpráv, nešlo by to u stahování celých zpráv (ZFO), které se vytvářejí a zasílají průběžně. A už vůbec ne u uploadu.

Jan Šíma

ISDS