Autor Zpráva
blaaablaaa
Profil
Ahoj,

mám web s tisíci obrázky v různých velikostech, které uživatelům zobrazuji podle toho, zda k nim mají práva (ověřuji v db). Jelikož se ale jejich počet stále zvětšuje (aktuálně pár desítek GB), zvažuji, kam je přesunout mimo hosting. Zaujal mě AWS S3. Bohužel mi ale není jasné, jak by šlo v takovém případě pracovat s uživatelskými právy (čistě jen právo zobrazit). Máte někdo zkušenost, případně doporučíte něco jiného?

Díky
Keeehi
Profil
blaaablaaa:
Bylo by to úplně stejné jako to máš teď. To jestli je ten soubor fyzicky na úložišti A (hosting) nebo B (AWS) by na tom nemělo nic měnit.
blaaablaaa
Profil
Keeehi:
Jak ale soubor uživateli dodám? Na hostingu v php ověřím, zda má uživatel právo jej zobrazit a podle toho mu jej zobrazím nebo ne. Na AWS takovou možnost nemám, ne? (fakt v tom lítám bez zkušeností a googlení moc nepomáhá)
Keeehi
Profil
blaaablaaa:
Jak teď vypadá ověření a dodání uživateli?
blaaablaaa
Profil
Keeehi:
Ověření práv v php/mysql a přes readfile servíruji uživateli.
breeta
Profil
Ano pokud to máš tak že fotka není zvenku přístupná jen když ji zavolá script na backendu, nelze to stejně jak to máš teď, ale musíš postavit aplikaci které bude komunikovat mezi sebou přes API třeba. Pak jde o to jestli není jednodušší si zvolit nějaké VPS např. www.digitalocean.com/pricing/calculator kde je dostatek prostoru ...
blaaablaaa
Profil
breeta:
Aktuálně mi to běží na savaně na managed vps, výhledově ale vyčerpám prostor a nějaký cloud mi přišel jako škálovatelnější i levnější řešení. Jedná se o fotky (aktuálně 30 GB), přičemž ty starší nemají velký traffic.
Keeehi
Profil
blaaablaaa:
Takže teď máš něco jako
readfile($dbrow["path"]);
A v databázi máš ve sloupci path uloženou cestu k souboru slozka/soubor.jpg
Tak jediná změna kterou teď budeš mít je ta, že v databázi budeš mít jinou hodnotu. Něco jako http://d111111abcdef8.cloudfront.net/slozka/soubor.jpg
blaaablaaa
Profil
Keeehi:
To mě napadlo, ale říkal jsem si, zda neexistuje lepší řešení, než stahovat soubor a přeposílat ho uživateli a zbytečně tímhle blokovat procesy a navyšovat traffic.

Ideál by bylo, kdyby se mě amazon dokázal před každým servírováním souboru dotázat, zda může (třeba dle tokenu v url souboru).
Kajman
Profil
Stažené soubory z externího úložiště si můžeš cachovat a pokud jsou v cache, dělat lokální readfile. Plus si dodělat mazání cache od nejstarších souborů, pokud už bude docházet místo pro cache přidělené.
blaaablaaa
Profil
Kajman:
Díky, s tímhle by to asi šlo. Po nahrání je hned šoupnout do cache + pak při přístupu na necachované uložit z cloudu.
N71
Profil *
AWS umí generovat Pre-signed URL adresy pro dočasný přístup k autorizovaným operacím (jako stažení privátních dat ve tvém případě). Viz třeba tady: www.msp360.com/resources/blog/s3-pre-signed-url-guide

U S3 (a AWS obecně) si dej pozor na traffic – tvoří velkou část nákladů, v případě S3 prakticky dominantní. Než se tlačit sem, na tvém místě bych se podíval na jiné možnosti úložišť u lokálních poskytovatelů server-hostingů. Dostal by ses na zlomek nákladů.
NoxOne
Profil
Na takovéto věci používám www.hosting90.cz/virtualni-servery. Vyberu si výkon, RAM a k tomu HDD. Když potřebuji přídavné místo tak si připlatím a připojím další úložiště. To mají levnější než prostor na hlavním HDD u VPS. Vše mi tam maká již více jak 11let.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0