- OpenStack Swift prakticky (1): object store pro vás
- OpenStack Swift prakticky (2): verzování objektů
- OpenStack Swift prakticky (3): omezení platnosti objektů
- OpenStack Swift prakticky (4): Dočasné URL
- OpenStack Swift prakticky (5): řízení přístupu
- OpenStack Swift prakticky (6): Object store jako statický web
OpenStack Swift může sloužit také jako primitivní statický web. Výhodou je, že nemusíte nic moc řešit a máte jednoduchý webový přístup k objektům některého z kontejnerů a využít tak všech výhod object storage (tzn. vysoce redundantní řešení, data efektivně distribuovaná přes mnoho nodů/disků, možnost inteligentní replikace napříč planetou, programovatelný přístup z aplikací přes jednoduché API apod.).
Vytvořme si ještě další kontejner, uploadujme do něj nějaký objekt a zpřístupněme kontejner všem.
tomas@labserver:~$ openstack container create staticweb +---------------------------------------+-----------+------------------------------------+ | account | container | x-trans-id | +---------------------------------------+-----------+------------------------------------+ | AUTH_d20fb4c9c0d645b4962484390a3be701 | staticweb | tx74b698ec077246e7a1c41-00566f0c5d | +---------------------------------------+-----------+------------------------------------+ tomas@labserver:~$ openstack object create staticweb mujsoubor.txt +---------------+-----------+----------------------------------+ | object | container | etag | +---------------+-----------+----------------------------------+ | mujsoubor.txt | staticweb | 1d84480e95d3e31222e8d0e4a1f2da72 | +---------------+-----------+----------------------------------+ tomas@labserver:~$ swift post staticweb -r '.r:*,.rlistings'
Podobně jako v předchozí kapitolce se prohlížečem svého počítač připojte na URL kontejneru (IP adresa vašeho OpenStack Swift a jeho portu, potom v1 a pak account a jméno kontejneru), tedy v mém případě
http://xx.xx.xx.xx:8080/v1/AUTH_d20fb4c9c0d645b4962484390a3be701/staticweb/
Co uvidíme? Výpis našich objektů, ale pouze jako text.
Pojďme teď říci Swiftu, že pro tento kontejner má fungovat jako mini-web-server a na hlavní URL zobrazit HTML se seznamem všech objektů, tentokrát ale ve formě odkazů, takže si jednoduše můžete stáhnout (nebo přečíst, pokud jde o HTML objekty, poslechnout pokud jde o MP3 objekty apod.).
tomas@labserver:~$ openstack container set --property 'Web-Listings=true' staticweb
Refreshujte stránku v prohlížeči.
Graficky si můžeme stránku upravit použitím CSS. Vytvořme tedy jednoduchý CSS soubor, uploadujme ho do kontejneru a nastavme Swift tak, že jej použije jako kaskádový styl.
tomas@labserver:~$ echo "body {background-color: lightblue;}" > styl.css tomas@labserver:~$ openstack object create staticweb styl.css +----------+-----------+----------------------------------+ | object | container | etag | +----------+-----------+----------------------------------+ | styl.css | staticweb | dc63ed634268ac2e4c5aa19338aa3069 | +----------+-----------+----------------------------------+ tomas@labserver:~$ openstack container set --property 'Web-Listings-CSS=styl.css' staticweb
Znovu obnovte stránku.
Místo výpisu obsahu můžete take zobrazit nějaký výchozí HTML soubor. Vytvořme jej, uploadněme a řekněme to Swiftu.
tomas@labserver:~$ echo "<H1>Muj staticky web</H1>" > index.html tomas@labserver:~$ openstack object create staticweb index.html +------------+-----------+----------------------------------+ | object | container | etag | +------------+-----------+----------------------------------+ | index.html | staticweb | 542a2a044483c3b834bd25a28d9768de | +------------+-----------+----------------------------------+ tomas@labserver:~$ openstack container set --property 'Web-Index=index.html' staticweb