<< Click to Display Table of Contents >> Navigation: Documentations techniques > AirDDO V8.3 - Setup > Onglet Sécurité > Sécurisation par accès direct (Copie locale) |
Le mode de sécurisation par accès direct vise à favoriser la lecture des sons situés dans l'un des répertoires spécifiés (de 1 à 3).
Au moment de charger un son, AirDDO scrute en priorité le (ou les) répertoires spécifiés (1 à 3).
Si AirDDO trouve le son à jouer dans l'un de ces répertoires, il le charge depuis cet emplacement.
S'il ne le trouve pas, il le charge depuis le serveur (path T_ITEM, avec sécurisation T_SECUR).
Renseigner les champs en indiquant le chemin d'accès des serveurs de fichiers sons
Ex : \\NT2\BDM\ ou D:\DATA\
Ou en parcourant le réseau en utilisant les touches "Sélection".
Typiquement, cette option est utilisée pour jouer les sons depuis le disque dur local du diffuseur.
Cette option est généralement associée à l'option suivante:
Use File Transfert :
Avec cette option, AirDDO va copier dans les répertoires 1 à 3, en tache de fond, tout fichier dont la lecture est demandée si ce fichier n'est pas déjà présent dans ces répertoires.
Remarque : Pour ne pas activer l'un des répertoires, laisser le champ correspondant vide.
INFORMATIONS TECHNIQUES :
La première fonction appelée par AirDDO lorsque la copie locale est activée est INIT_TRANSFERT_FILE :
Cette fonction permet d’initialiser la copie locale au travers de :
• La création des Listes de traitement
• La lecture des Clefs de registre
• Le lancement des Threads
Concernant les clefs registre lues (se trouvant dans AirDDO/8.0/Sound) lors de cette initialisation en voici la liste :
• PreferedPath1 : Chemin de destination de la copie locale
• SizeMax_PreferedPath1 : Volume de données utilisé du dossier contenant les fichiers issus de la copie locale
• SizeFree_PreferedPath1 : Espace libre minimum requis sur le disque (pour l'utilisateur) pour éviter une saturation ou pour conserver un volume d’espace libre sur le disque/partition cible (pour d’autres projets éventuellement)
• Delay1 : (10 > Delay1 > 100) Délai d'attente dans le callback de progression de la copie ==> utile pour gérer le débit de transfert réseau lors de la copie locale. Une valeur faible permet une copie plus rapide.
o ex : 50 ms = 8 %/mb 40 ms = 11 %/mb 30 ms = 17 %/mb 20 ms = 18 %/mb 15 ms = 33 %/mb
• ServicePurge : nom du service Playout File Service (pour bloquer le thread de purge gThreadDirectory si PFS déjà en cours d'exécution) -> Il existe un process de purge indépendant de AirDDO mais qui n’est pas utilisé dans un environnement de production. Cette clé s’en assure pour éviter d’avoir deux processus de purge en simultanées.
Toutes les infos sont stockées dans STRUCT_PATH : STRUCT_PATH.INIT() lance les 3 Threads de la copie locale :
• gThreadCopyFile : Thread de copie des fichiers son, spectre et marqueur, du filer distant vers le répertoire de cache local.
o Nécessite un input AirDDO, à savoir l’ajout d’un élément dans la liste de traitement.
• gThreadDirectory : Thread de purge du répertoire local pour respecter les deux limites (SizeMax : considéré comme la taille maximum souhaitée du stockage local et SizeFree : la taille minimale d'espace libre du disque requis). Supprime le dernier fichier utilisé (date de dernier accès) et boucle (en attendant 60s)
o Indépendant des autres Threads, il n’a pas besoin d’input AirDDO pour être déclenché contrairement aux deux autres Threads.
• gThreadCompare : Thread de comparaison d'un fichier du filer avec son pendant local. Permet de demander la copie locale de la nouvelle version d'un fichier s'il a été modifié sur le filer.
o Nécessite un input AirDDO, à savoir l’ajout d’un élément dans la liste de traitement.
gThreadCopyFile :
TRANSFERT_FILE appelée par AirDDO pour ajouter des fichiers à la liste de traitement par la copie locale. Pour chaque fichier selectionné, on ajoute dans la liste le fichier en question, son spectre et son marker TRANSFERT_FILE est appelée par AirDDO via la fonction SendToFileTransfert (quand le chemin vers le fichier pointe sur le filer), elle-même appelée par VerifSon2...
• iRes = 0 : Fichier en cours de record, on remet le fichier à la fin de la liste des fichiers à copier pour une copie future
• iRes = -1 : Impossible d'obtenir les informations sur le fichier
• iRes = -2 : espace libre (pour l'utilisateur) du disque < SizeFree_PreferedPath1 ==> le disque est trop rempli
• iRes = -3 : taille du fichier <= 1, la taille du fichier est invalide
• iRes = 1 : Copie locale autorisée et possible :
o On copie le fichier en « .TRANSF » puis on le move avec son extension initiale (.BWF). Pour chaque fichier (SON, SPC, MRK) : Sur le fichier rapatrié, on remet la date de création du fichier originel, puis on met la date de dernier accès et la date d'écriture à l'heure actuelle (après copie).
ATTENTION : On ne vérifie pas le dépassement du paramètre « SizeMax » du dossier paramétré en registry dans ce thread...
gThreadDirectory
CHECK On vérifie tout d'abord que le PFS (Playout File Service) est désactivé. SI la taille du dossier de cache local > SizeMax_PreferedPath1
OU
SI La taille d'espace libre < SizeFree_PreferedPath1
ALORS On supprime le fichier ayant la date de dernier accès la plus vieille (peu importe que ce soit un .BWF, .SPC ou .MRK)
WAIT 60 secondes.
gThreadCompare
COMPARE_FILE appelée par DDO pour ajouter des fichiers à la liste de traitement par la comparaison de fichier (pile différente à la copie locale) COMPARE_FILE est appelée par DDO via la fonction CompareFileTransfert, elle-même appelée par VerifSon2...
Les fichiers sont ajoutés à la liste de comparaison uniquement s'ils ont un chemin vers le filer. Cela veut dire que l'on va comparer un fichier que s'il est Drag&Droppé à nouveau depuis le browser !
On prend le fichier le plus récent (date de dernière écriture) entre les 2 fichiers (cache local et filer distant). On compare la date de dernière écriture du fichier sur le filer avec la date de création du fichier local :
• Si le filer est plus récent : on met le fichier dans la liste de traitement de copie locale (via le thread gThreadCopyFile)
• Si le fichier local est plus récent ou différence inférieure à 60s : On met à jour la date de création du fichier local avec la date de dernière écriture du filer (et on met la date de dernier accès et la date d'écriture à l'heure actuelle).