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