Előző három bejegyzésemben már ismertettem, hogy miért jó nekünk az S3, most nézzük át a "benne lévő" alapvető okosságokat. Objektumok, vödrök, elérés, saját domain név használata. Nem kisebbről, mint statikus fájlok de facto cloud computing megoldásáról van szó.
Az S3 nem fájlokat, hanem "objektumokat" tárol. Eltárolhatsz benne egy sztringet, nem kell szöveges fájlba tenned. Egy objektum mérete maximum 5 giga lehet. Minden objektum mellé metaadatokat is lehet tárolni.
Az objektumokat "vödrökbe" rakod. Az S3-on nincs mappaszerkezet, csak annyi, hogy az objektumodat valamelyik vödörbe rakod. Gyakorlatilag a vödör egy olyan mappa, amibe nem lehet almappákat létrehozni.
Vannak olyan szoftverek, amik sima meghajtóként képesek az S3-at kezelni. Ők trükköznek, más szoftverekkel vagy egy sima S3 lekérdezéssel mást fogsz látni. Pl. a JungleDisk pontokkal jelzi egy fájl nevében a mappa-pozícióját. Az a lényeg, hogy ezeket más szoftverekkel nehéz lesz olvasni, egyedi megoldásokat használnak.
Fontos, hogy a vödrök neve az egész S3-on belül egyedi kell, hogy legyen. Ha már valaki létrehozta a "savanyucukor" nevű vödröt, te már nem fogod tudni!
Minden objektum eléréséhez meg kell adnod a nevét és a vödröt, ahová tartozik. A webről is elérheted az objektumodat, ehhez többféle URL séma van, ez a legegyszerűbb:
http://vödörneve.s3.amazonaws.com/objektumneve
Az objektum nevében lehet / jel is, ezért olyan dolgokat is lehet csinálni, mintha almappában lenne a fájlod, pl:
http://example.s3.amazonaws.com/dir1/dir2/file.txt.
Ekkor az objektumnév értelemszerűen: dir1/dir2/file.txt. A Twitter avatar képek is az S3-ról jönnek, például az enyém.
Itt a vödör neve "twitter_production", az objektumé pedig "profile_images/28182762/user_8472629_1155065370124.png".
Ebből látszik, hogy kutyaközönséges GET művelettel, böngészőből is elérhető egy objektum. Olyat is tud, hogy a letöltést megadott bájtnál kezdi vagy csak az első X bájtot küldi, a teljes HTTP 1.1 támogatott.
REST és SOAP API-k állnak rendelkezésre, én a REST API-hoz fél nap alatt írtam saját PHP class-t, nem nehéz ügy. Lehet sima HTTP POST-tal is feltölteni, HTML oldalról vagy közvetlenül Flash-ből!
Szinte minden API kérés HMAC-SHA1 szignóval van azonosítva, azaz a titkos kulcsoddal kell kódolni az ügyet.
Ha szép URL-eket vagy a saját domain-ed szeretnéd, használni, akkor azt így:
Vödrönként vagy objektumonként lehet szabályozni, hogy ki fér hozzájuk. Négyféle lehet:
Anonymous ember: nem szignózza a kérést és nem küld AWS azonosítót sem.
Mivel a teljes HTTP támogatott, lehet HEAD kérést is tolni, ekkor minden infót megkapsz (metaadatot is), csak a bájtokat nem, hasznos.
COPY API: bétateszt alatt van a copy API (mondjuk hivatalosan a komplett Amazon béta...), amivel átnevezni vagy másolni lehet az objektumokat (vödröket nem). Sajnos itt van árazás is, de minimális a díj, egy PUT request árát fizeted (most épp 0.01 USD körül van).
Magyarországról átlagosan béna a feltöltés, van ahol jó, van, ahol lassabb. A ping idők hihetetlenül rövidek, a feldolgozási idő is, az S3 nagyon gyorsan válaszol.
A JungleDisk nagyon lassan tölt fel (a sima feltöltés kábé ötödével), nem látok benne állítható korlátozást ezért nem értem.
Az amerikai (Media Temple) szerverem átlag 50mbit/s-al tölt fel rá...
Nagyobb állományok feltöltésénél néha elszáll a kapcsolat (mondjuk húszból egyszer), ilyenkor van, hogy háromszor is meg kell próbálni. Ha valamilyen szoftvert írsz rá, akkor ezt vedd figyelembe, a saját PHP osztályom is elmegy öt próbálkozásig (ritkán), csak utána jön vissza hibával (még sosem).
Statikus állományok nagy tömegű tárolására és kiszolgálására az S3-nál nincs jobb. Nem kell saját statikus tartalomra dedikált szerverekkel, sávszéllel, adminisztrációval bajlódni. Csak fizetni. Az árazásról hamarosan írok egy rövidet, addig is tervezz okosan és csak bátran!
iMect means internet, media and other cool things. iMect is a small company near lake Velence, Hungary. We’ve a big footer on every page where you can discover what we do and what happens with us.
Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis cég vagyunk közel a Velencei-tóhoz. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.