La classe NsRestorePackage désigne une archive de restauration, c'est à dire un fichier conteneur empaquettant des élément extraits des sauvegardes contenant des informations particulières pour permettre leur restauration. Les archives de restauration sont générées par le serveur et téléchargeables directement dans les interfaces du logiciel ou par l'intermédiaire de l'interface Web, si celle-ci est activée. Leur cycle de vie est géré par le serveur : pour libérer de l'espace disque elles sont automatiquement effacées au bout d'un délai configuré par l'adiministrateur du serveur reflété par le champ ExpirationDate.
Pour créer des archives de restauration, utilisez la classe NsCreateRestorePackageRequest qui vous permet de spécifier la liste des fichiers à inclure dans l'archive. La création d'une archive de restauration pouvant prendre un temps variable en fonction du volume de données à extraire des sauvegardes, vous pouvez utiliser les champs State, ProgressValue ou la méthode WaitForConstruction pour contrôler l'avancement de leur construction par le serveur.
L'archive peut être envoyée pour restauration à l'utilisateur sous la forme d'une opération Push Restore grace aux méthodes PushToUser et PushToUserByID. Une fois l'objet NsPushRestoreRequest créé, le logiciel essaie d'utiliser le canal serveur-à-client pour déclencher la restauration de manière immédiate, sinon la demande de restauration est déposée dans la file des restaurations à traiter par l'agent client.
Lorsque le format de l'archive est défini à nsRestorePackageFileFormatNSArchive (le format par défaut) les fichiers sont stockés dans l'archive tels qu'ils sont stockés sur le serveur : ils ne sont pas restaurables sans l'intermédiaire de l'assistant de restauration du logiciel. Par ailleurs, les fichiers chiffrés restent chiffrés dans l'archive et sont déchiffrés par l'assistant durant le processus de restauration sur le poste cible (il n'y a ni stockage sur le serveur ni transit de données "en clair").
L'identificateur unique de l'archive de restauration sur le serveur de sauvegarde.
La date de création de l'archive de restauration sur le serveur de sauvegarde, au format UTC.
Le nom de l'archive de restauration.
L'identificateur de l'utilisateur (NsUser) ayant demandé la création de l'archive.
Le composant du logiciel ayant déclenché la création de l'archive de restauration.
Le hash MD5 de l'archive de restauration, utilisé par les assistants du logiciel pour vérifier l'intégrité de l'archive avant l'extraction des fichiers.
Le statut actuel de création de l'archive de restauration.
Le format de l'archive de restauration.
Réservé.
Le nombre de fichiers dans l'archive de restauration.
La taille de l'archive de restauration.
Le temps d'extraction, en secondes.
L'étape de construction de l'archive de restauration, si State indique que le fichier est en cours de création.
Un nombre entre 0 et 100 indiquant le pourcentage de progression de l'opération.
La date, au format UTC, au delà de laquelle l'archive de restauration sera automatiquement supprimée par le serveur de sauvegarde.
Le nombre de téléchargement en cours depuis le canal logiciel. Cette valeur n'inclue pas les téléchargements possiblement effectués depuis l'interface Web de restauration, si celle-ci est activée.
Le nombre total de téléchargements de l'archive de restauration.
Charge en mémoire l'archive de restauration spécifiée par l'identificateur RestorePackageID.
Annule la construction d'une archive de restauration.
Supprime manuellement une archive de restauration du serveur de sauvegarde.
Mets à jour les indicateurs d'une archive de restauration déjà chargée.
Attend une nombre de secondes défini par le paramètre Timeout que l'archive de restauration soit prête au téléchargement. La fonction renvoit true si l'archive est prête à être téléchargée, false si une erreur est survenue ou si l'archive était toujours en construction une fois le délai d'attente terminé.
Télécharge l'archive de restauration dans le chemin d'accès pointé par LocalPath et renvoit true si l'opération s'est bien déroulée.
Renvoit l'URL de téléchargement de l'archive via l'Interface de restauration Web du logiciel, si celle-ci est activée.
Crée une requête Push Restore afin que les documents empaquetés dans l'archive soient restaurés de manière interactive par l'utilisateur TargetUser, avec un message facultatif MessageToDisplay. L'archive de restauration doit être construite et au format nsRestorePackageFileFormatNSArchive.
Crée une requête Push Restore afin que les documents empaquetés dans l'archive soient restaurés de manière interactive par l'utilisateur d'identificateur TargetUserID, avec un message facultatif MessageToDisplay. L'archive de restauration doit être construite et au format nsRestorePackageFileFormatNSArchive.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") const nsSearchScopeSpecificUser = 3 if server.Load(connection) then ' Demande un nom d'utilisateur userName = InputBox("Saisissez un nom d'utilisateur (de la forme user@group) :", "Test de l'API UB", "") if userName <> "" then ' Essayer de charger l'utilisateur set targetUser = CreateObject("NsAPI.NsUser") if not targetUser.LoadFromUserName(connection, userName) then MsgBox "Le nom d'utilisateur saisi n'existe pas sur le serveur." else ' Chercher tous les fichiers supprimés de l'utilisateur set searchEngine = server.SearchEngine searchEngine.searchScope = nsSearchScopeSpecificUser searchEngine.UserID = targetUser.ID set results = searchEngine.SearchForDeletedFiles(connection) if results.Count > 0 then ' On crée un objet pour créer l'archive set packager = CreateObject("NsAPI.NsCreateRestorePackageRequest") for each result in results ' Ajouter le fichier à l'archive packager.AddVersionByID(result.versionID) next ' Message d'info MsgBox results.Count & " élément(s) ont été trouvés et vont être envoyés à " & targetUser.Description ' Nommer l'archive pour le debug packager.PackageName = "TEST" ' Important : assigner l'archive à l'utilisateur destinataire, sinon ' elle serait par défaut attribuée à l'utilisateur actif (l'administrateur local) ' Le cas échéant l'archive ne pourrait pas être ouverte par l'utilisateur ' destinataire car il n'aurait pas de droit de lecture dessus. packager.UserID = targetUser.ID ' Lancer la création du fichier set restorePackage = packager.CreatePackage(connection) ' Créé ? if restorePackage is nothing then MsgBox "Error lors de la création de l'archive de restauration." else ' Attendre la création de l'archive, maximum 5 minutes... if not restorePackage.WaitForConstruction(connection, 5 * 60) then MsgBox "Une erreur est survenue durant la construction de l'archive, ou celle-ci prends trop de temps à être générée. Abandon." else ' L'envoyer à l'utilisateur cible set pushRestoreRequest = restorePackage.pushToUser(connection, targetUser, "Voici la liste de vos fichiers à restaurer") if pushRestoreRequest is nothing then MsgBox "Impossible d'envoyer les fichiers à l'utilisateur !" else MsgBox "Les fichiers ont été envoyés à l'utilisateur avec succès." end if end if end if else MsgBox "Aucun fichier supprimé à récupérer." end if end if end if else MsgBox "Impossible de charger les informations serveur." end if connection.Disconnect else MsgBox "Connexion au serveur local impossible." end if