Složky serveru, virtuální složky

Pro účely importů, exportů, načítání souborů, ukládání souborů a pro běžné stahování souborů z webového sídla systému je možné využívat složky dané buď adresářovým systémem serveru nebo tzv. složky virtuální, které se fyzicky zpravidla nacházejí mimo webové sídlo nebo i mimo server.

Zatímco běžné složky dostupné na webovém sídle jak fyzicky, tak také odkazem není třeba dále vysvětlovat, složky virtuální si o to napoak žádají. Cílem mechanismu virtuálních složek je získat pro různé účely URL odkazem začínajícím z webového sídla dosáhnout i na jiné složky, které z různých důvodů jsou uloženy mimo webové sídlo nebo v hlouběji v jeho struktuře. Jde tedy o mapování složky dostupné flexideo serveru běžícímu na stroji se se systémem adresářů na složky neexistující v kmenu webu tak, aby v případě odkazu na takovou složku v kmenu byl k dispozici obsah složky umístěné jinde. Součástí takového mapování je také nastavení oprávnění pro čtení či zápis takto mapovaných složek pro různé uživatele.

Vždy pak platí, že shoduje-li se nějaká virtuální složka svým názvem s nějakou "fyzickou" umístěnou přímo na webovém sídle, pak tuto "fyzickou" složku ta virtuální zastíní. Konkrétní seznam virtuálních složek je pro každou aplikaci systému flexideo specifický a odráží potřeby dané aplikace. Nicméně pro správné fungování zejména intranetové části je třeba, aby byly definovány některé základní virtuální složky.

Veškeré informace o virtuálních složkách jsou ukládány v databázi podobně jako jsou ukládány informace o intranetových složkách, tabulkách, záložkách a dalších typech položek informační struktury serveru. Vzhledem k tomu, že jde o složky sdílené, ukládají se v rámci dokumentů typu x_item_shared (nikoli tedy x_item_user). Uložením nové instance dokumentu x_item_user s nastaveným typem v (virtual).

Klíčovými vlastnostmi virtuálních složek nastavovanými v záznamech x_item_shared dále jsou:

item_type - (char; oblast /general) výše zmíněný typ strukturální položky, který pro účely virtuálních složek je třeba nastavit vždy na hodnotu v (virtual);

system_name - (varchar, oblast /general) zpravidla je uváděna hodnota názvu virtuální složky; obsahuje případný poslední krok, pokud jich je ve virtuální cestě více;

path - (varchar, oblast /system_properties) kolonka cesty v oblasti system properties (vlastnosti systémové složky) obsahuje odkaz na fyzické umístění mapované složky, který je dostupný pro proces běžícího serveru flexideo;

mapped_to - (varchar, oblast /system_properties) název složky použitelný v url (tedy bez mezer a spec. znaků) nebo běžným lomítkem oddělený seznam názvů; tato hodnota bude sloužit jako odkaz virtuální složky odvíjený od kmene webového sídla aplikace;

homepage - (varchar, oblast /system_properties) možnost nastavit název domovské stránky při popužití odkakzu na složku bez zadání názvu souboru; není-li uvedeno, používá se výchozí nastavení pro danou aplikaci serveru;

download - (boolean, oblast /system_properties) určuje, zda je adresář určen pro download;

user_map - (boolean, oblast /system_properties) při nastavení této volby je za udaný fyzický odkaz na složku doplněn ještě login uživatele, se kterým server komunikuje (nikoli do odkazu samotné virtuální složky, kterou při komunikaci používá klient ve svém požadavku); pokud uživatel požaduje z dané složky načíst nebo do ní uložit soubor (xml požadavkem), server soubor hledá či ukládá v odpovídající podsložce daného uživatele;

save_file - (boolean, oblast /system_properties) povolení ukládat do této složky soubory přes požadavky save-file a save-files.

load_file - (boolean, oblast /system_properties) povolení načítat z této složky soubory požadavkem load-files.

anonym_zone_user - (key, oblast /system_properties) při uvedení celočíselného klíče daná složka reprezentuje anonymní zónu; tento klíč pak reprezentuje záznam uživatele ze seznamu uživatelů; tento záznam musí být předem zaveden a představuje všechny skutečné uživatele přistupující na web v anonymitě;

authent - (boolean, oblast /system_properties) vynucení autentifikace

Ostatní prvky dokument x_item_user jsou nepovinné. Některé je však dobré vyplnit i tak, např.

display_label - (varchar, oblast /general) zpravidla tatáž hodnota jako v system_name nebo prázdné;

descr_text - (varchar, oblast /general) bližší popis významu či účelu virtuální složky, není však nikde běžně zobrazován;

auto_id - (key, oblast /general) automaticky generovaná integer hodnota při uložení nové instance;

Ostatní prvky v typu x_item_shared zpravidla vyplňovány nejsou.


Soubor flexideo.vdd

Pro účely snadnější inicializace různých, zejména těch povinných virtuálních složek v databázi se do pracovní složky serveru vkládá soubor s výchozími nastaveními. Při startu služby flexideo server se tento soubor načítá a kontroluje s nastaveními v databázi a pokud chybí, doplní je. Jde o XML soubor, kde je seznam přiřazení file-path vs. web-path. Obsahuje seznam uzlů s těmito přiřazeními a některými základními nastaveními pro každé z nich.

Nyní se podívejme na DTD zápis specifikující základní platný obsah XML souboru s definicí virtuálních složek:

<!ELEMENT virtual-dirs ( virtual-dir* ) >
<!ELEMENT virtual-dir EMPTY >
<!ATTLIST virtual-dir
mapped-to CDATA #REQUIRED
path CDATA #REQUIRED
user-map CDATA ('' | true | false) >

Atribut user-map nastavený na hodnotu true zajistí, že ve fyzickém umístění bude ještě vždy použita podsložka kopírující login-name přihlášeného uživatele. Použití takové virtuální složky pak zajistí, že každý uživatel si bude ukládat své vlastní soubory a jiný uživatel mu je nemůže přepsat. Rovněž tak se toto dá využí pro nastavení různých oprávnění ke sdíleným složkám v souborovém systému.

Následující příklad uvádí možné nastavení souboru definic virtuálních složek s tím, že zde uvedené složky jsou povinné pro správné fungování intranetové části systému flexideo:

example
<virtual-dirs>
<virtual-dir>
<mapped-to value="public-saves"/>
<path value="\\filesrv\flexideo\saves\public"/>
<save-file value="true"/>
<download value="true"/>
</virtual-dir>
<virtual-dir>
<mapped-to value="user-saves"/>
<path value="\\filesrv\flexideo\saves\private"/>
<user-map value="true"/>
<save-file value="true"/>
</virtual-dir>
<virtual-dir>
<mapped-to value="sh-independent"/>
<path value="d:\flexideo\shared\actions\_independent"/>
<save-file value="true"/>
</virtual-dir>
<virtual-dir>
<mapped-to value="sh-transforms"/>
<path value="d:\flexideo\shared\actions\_transforms"/>
<save-file value="true"/>
</virtual-dir>
<security-zone>
<mapped-to value="unk"/>
<user value="123"/>
</security-zone>
</virtual-dirs>

Pokud v požadavcích, vyžadujících ukládání souboru nebude uvedena žádná složka (atribut path nebo rel-folder) nebo se tato složka nebude shodovat s žádnou z definovaných virtuálních složek, bude soubor uložen do exportní složky nastavené v konfiguračním souboru serveru flexideo, případně doplněné o požadavkem určené podsložky.


"Povinné" virtuální složky

public-saves - sem se budou ukládat všechny soubory, u kterých bude uvedena složka (path nebo rel-folder) public-saves; nastavení této public složky v systému není pro chod nezbytně nutné;

private-saves - tato složka musí být nastavena s atributem user-map="true", protože je intranetem a extranetem využívána pro ukládání a následné stahování souborů jednotlivých uživatelů, kteří mohou mít různá oprávnění. Proto jeden uživatel nemá "vidět" do složky jiného. V požadavku pro stahování souboru je pak uvedena jen opět podsložka private-saves webového sídla a server již sám zajistí přesměrování do složky přihlášeného uživatele. Důležité však pouze je, aby tato složka byla platně definována, na administrátorovi pak záleží kde.

sh-independent - tato složka slouží pro ukládání akčních obalů transformačních procesů a musí být vždy definována tak, jak je uvedeno v příkladu, tedy {#web-site-folder}\shared\acrions\_independent, rovněž název sh-independent musí být dodržen;

sh-transforms - tato složka slouží pro ukládání šablon a souboru nastavení transformačních procesů a musí být vždy definována tak, jak je uvedeno v příkladu, tedy {#web-site-folder}\shared\acrions\_transforms, rovněž název sh-transforms musí být dodržen;

unk - tzv. unknown, neboli složka nevyžadující autentifikaci;

unk/comex - namapování comex obslužných souborů na unk pro možnost fungování COMEX rozhraní i v anonymním nebo nepřihlášeném režimu;

user definuje pdk uživatele, který se má použít; je-li zadáno klíčové slovo auth, znamená to, že pro tuto složku bude vyžadována autentifikace.

Vedle těchto pro intranet povinných složek je možné definovat složky další dle potřeb a aplikačního využití zejména pak ve spojení s požadavky, které pracují s ukládáním souborů.

Výchozí soubor flexideo.vdd (nebo pro další instance na jednom stroji je použito vlastního názvu {instance}.vdd) je při instalaci při exportu výchozích nastavení pro server dle těchto nastavení generován také (viz. příprava instalace serveru).


Práce se souborySložky serveru, virtuální složky