Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Amazon S3 – SplFileInfo objekt

node
verified
rating uzivatele
(5 hodnocení)
21. 3. 2016 13:44:01
Ahojte,
potrebujem vytvorit BinaryFileResponse v Symfony pre subor ktory je umiestneny na Amazon S3 aby som ho mohol nastreamovat z lokalnej adresy. Problem je ten ze tato trieda vyzaduje aby dodany subor bol SplFileInfo objekt.
Bohuzial sa mi nedari prist na to ako z S3jky ziskat takyto objekt. Co som sa docital je ze pri praci s kyblom( :D ) je dosutpny iterator objektov ktory ma subory ako SplFileInfo objekty, akurat ide o to ze je to chraneny atribut a nenasiel som ziadnu verejnu metodu cez ktoru by som ho vedel ziskat. Co sa samotneho objektu tyka, tzn ten ktory mam k dispozicii, tak som sa nedopatral k informacii ze by vedel poskytnut takyto objekt.
Neviete ako na to?
Nasiel som projekt Gaufrette ktory prida dalsiu uroven abstrakcie a zrejme by v tomto mohol pomoct ale nechcem pridavat dalsie zavyslosti do projektu ak nemusim.
Neviete niekto ako toto poriesit? Pouzivam poupraveny S3 stream wrapper a prakticky mam pristup k absolutnej ceste k suboru(tzn http://...) ale BinaryFileResponse potrebuje lokalny subor.
-------
Lol, tak som to poriesil. Chybu som robil v tom ze som do BinaryFileResponse daval absolutnu cestu k suboru na s3. Stacilo to zmenit na uri a uz to fici :D
21. 3. 2016 13:44:01
https://webtrh.cz/diskuse/amazon-s3-splfileinfo-objekt/#reply1184373
TomasX
verified
rating uzivatele
(4 hodnocení)
21. 3. 2016 15:10:07
jedině uložit k sobě na disku a poté předat do BinaryFileResponse, php přímo podobné streamy nepodporuje a zbytečně se snažíš něčo ohýbat. SplFileInfo volá totiž stat() funkci a ta podporuje pouze lokální soubry, resp. zdroje typu ftp://, phar:// či file://.
Proč to ale děláš takhle složitě? Nestačí ti streaming zajistit třeba přes nginx, pro s3 vygenerovat jednorázový přístup, připravit si magické routy na nginx a nechat ho přímo šáhnout do s3 a data vracet? Je to ten nejefektivnější způsob jak nabídnout dat z s3 svým klientům. Děláme to taky takhle, buď vytvoříme pro stažení souboru jednorázovou routu přímo pro nginx nebo naopak z backendu na takovou routu přesměrujeme, nemusíme zbytečně řešit bufferování na naší aplikaci, držet neúměrně dlouho zabraný php proces nebo čekat desítky minut u gracefully restartu než si klient stáhne soubor, může se klidně stahovat hodně pomalu.
21. 3. 2016 15:10:07
https://webtrh.cz/diskuse/amazon-s3-splfileinfo-objekt/#reply1184372
Pro odpověď se přihlašte.
Přihlásit