- 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
Swift kotejner můžete označit jako Private nebo Public. Může ovšem být situace, kdy obsah kontejneru nechcete volně přístupný všem, ale současně vznikne potřeba někomu dát velmi rychle a jednoduše možnost objekt stáhnout, možná i modifikovat. Například máte soubor ve Swiftu a na email je moc velký. Swift umožňuje vygenerovat dočasnou URL, pod kterou si lze objekt vyzvednout a můžete s přesností na vteřiny nastavit její platnost. Tato URL nebude vyžadovat žádné přihlášení, ale po vypršení času už nebude fungovat (na samotný objekt to pro přihlášené uživatele samozřejmě nemá vliv). Tato funkce nemá nativní grafickou nadstavbu (je ovšem velmi jednoduché si ji vytvořit a integrovat do nějakého z vašich systémů), použijeme CLI.
Nejprve musíte ke svému účtu přiřadit náhodný řetězec, který se bude používat při kryptografickém generování URL (v praxi použijte něco sofistikovanější, než mojeheslo).
tomas@labserver:~$ swift post -m "Temp-URL-Key:mojeheslo"
Vytvořte kontejner a uploadujte objekt.
tomas@labserver:~$ openstack container create dalsiKontejner +---------------------------------------+----------------+------------------------------------+ | account | container | x-trans-id | +---------------------------------------+----------------+------------------------------------+ | AUTH_d20fb4c9c0d645b4962484390a3be701 | dalsiKontejner | tx4bd30a477ad7408bbe338-00566e9b21 | +---------------------------------------+----------------+------------------------------------+ tomas@labserver:~$ openstack object create dalsiKontejner mujsoubor.txt +---------------+----------------+----------------------------------+ | object | container | etag | +---------------+----------------+----------------------------------+ | mujsoubor.txt | dalsiKontejner | 1d84480e95d3e31222e8d0e4a1f2da72 | +---------------+----------------+----------------------------------+
Teď vygenerujeme URL. Říkáme, zda bude pouze pro čtení (GET) nebo povolíme modifikaci objektu (PUT). Možnost PUT se často využívá v kombinaci s funkcí uploadování z webového formuláře (bezpečný způsob, jak můžete ve webové aplikaci nechat někoho uploadovat objekt do privátního kontejneru – webová aplikace vygeneruje tempurl, na kterou formulář objekt přímo pošle – uživatel tak neukládá skrz webový server samotný, což by ho zatěžovalo, ale přímo do object store). Dále říkáme počet vteřin, po které bude dočasná URL platná (přepínačem –absolute můžete také definovat cílové datum a čas v UNIX formátu). Pak specifikujete adresu k objektu (to je váš account/kontejner/objekt).
tomas@labserver:~$ swift tempurl GET 240 /v1/AUTH_d20fb4c9c0d645b4962484390a3be701/dalsiKontejner/mujsoubor.txt mojeheslo /v1/AUTH_d20fb4c9c0d645b4962484390a3be701/dalsiKontejner/mujsoubor.txt?temp_url_sig=632a0f1702fbc4ba2b0f884867732c0b082d5e5d&temp_url_expires=1450090240
Na svém počítači vyzkoušejte, že jste schopni si stáhnout objekt z dočasné URL.
http://xx.xx.xx.xx:8080/v1/AUTH_d20fb4c9c0d645b4962484390a3be701/dalsiKontejner/mujsoubor.txt?temp_url_sig=632a0f1702fbc4ba2b0f884867732c0b082d5e5d&temp_url_expires=1450090240
Po nějaké době to zkuste znovu – URL už vypršela.