La classe NsStorageStats décrit les statistiques d'un compte de stockage, de type (NsStorage).
Le nombre de fichiers uniques stockés.
Le nombre total de fichiers et de leurs versions stockées.
Le volume de données stocké sur le serveur pour le compte de stockage.
Le volume total de données sur le poste client représenté par le compte de stockage.
Le nombre de transferts en attente de reprise associés au compte de stockage.
Le volume total de données en attente de reprise associés au compte de stockage.
Charge en mémoire les statistiques de l'espace de stockage possédant l'identificateur StorageID.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") const nsPackSnapshot = 1 ' Renvoit un espace de stockage à partir de son nom Function FindStorageByName(server, connection, name) set FindStorageByName = nothing set storageSpaces = server.StorageAccounts(connection) for each storage in storageSpaces if StrComp(storage.Name, name, vbTextCompare) = 0 then set FindStorageByName = storage Exit Function end if next End Function if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") if server.Load(connection) then ' Chargement des infos serveur ' On demande le nom d'un espace de stockage storageName = InputBox("Saisissez le nom d'un espace de stockage :", "Test de l'API UB", "") if storageName <> "" then ' Récupérer l'objet espace de stockage set storage = FindStorageByName(server, connection, storageName) ' Est-ce qu'on a bien trouvé un espace de stockage valide ? if storage is nothing then MsgBox "Erreur : l'espace de stockage """ & storageName & """ n'a pu être trouvé sur le serveur." else set statsBefore = CreateObject("NsAPI.NsStorageStats") set statsAfter = CreateObject("NsAPI.NsStorageStats") ' Charger les statistiques avant le compactage if not statsBefore.LoadFromID(connection, storage.ID) then MsgBox "Impossible de charger les statistiques sur le compte utilisateur sélectionné." else packedBackups = 0 ' On obtient la liste des sauvegardes stockées sur l'espace de stockage : set backups = storage.Backups(connection) ' On compacte tous les backups stockés for each backup in backups ' nsPackSnapshot => on garde que la dernière version des fichiers, les fichiers marqués comme effacés sont supprimés if backup.Pack(connection, nsPackSnapshot, 0, 0) then packedBackups = packedBackups + 1 else ' La sauvegarde est peut être en cours d'utilisation MsgBox "Impossible de compacter la sauvegarde " & backup.Name end if next ' Toutes les sauvegardes ont été traitées. On obtient les statistiques de stockage après l'opération. if not statsAfter.LoadFromID(connection, storage.ID) then MsgBox "Impossible de charger les statistiques sur le compte utilisateur sélectionné après opération." else ' La différence constitue le volume de données effacé suite au compactage. MsgBox packedBackups & " sauvegardes ont été compactées. " & vbCrLf & sysutils.Int64ToStr(sysutils.Int64Sub(statsBefore.CountAllVersions, statsAfter.CountAllVersions)) & " fichier(s) ont été supprimés, représentant " & vbCrLf & sysutils.SizeToStr(sysutils.Int64Sub(statsBefore.StoredSize, statsAfter.StoredSize )) & " sur le serveur de sauvegarde." end if 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