class NsStorage

La classe NsStorage décrit un espace de stockage sur le serveur destiné à stocker les données sauvegardées par les agents client.

Vous pouvez créer et gérer plusieurs espaces de stockage, chacun pouvant exploiter des formats et des méthodes de stockage particulières.

ID : __int64

L'identificateur unique de l'espace de stockage. Les constantes suivantes peuvent-être utilisées :

  • THSTORAGEACCOUNT_CREATE = -1 : l'objet n'existe pas et doit être créé.

Name : BSTR

Le nom de l'espace de stockage.

StorageType : enum NsStorageType

Le type de l'espace de stockage.

StoragePath : BSTR

Le chemin d'accès à l'espace de stockage. Il doit pointer vers un dossier local, un volume réseau, ou un fichier VHD.

Options : long

Options supplémentaires de stockage. Les valeurs suivantes peuvent-etre combinées :

  • THSTG_NETSHARE = 1 : L'espace de stockage est une ressource réseau et devra être montée en utilisant les paramètres d'authentification UserName et Password,
  • THSTG_DISABLE_CACHING = 2 : La mise en cache des données lors de la lecture et de l'écriture est désactivée au niveau du système d'exploitation,
  • THSTG_INCLUDE_IN_REPLICAS = 4 : Le compte de stockage est inclu dans les opérations de réplication, si la réplication serveur est activée.
  • THSTG_USETRANSACTIONNAL_NTFS = 8 : Active Transactionnal NTFS pour l'espace de stockage. Dans ce cadre, le logiciel n'utilise plus son système transactionnel, mais délègue directement ce rôle au système de fichiers (valable jusqu'à UltraBackup NetStation 4)
  • THSTG_CONTAINS_DATABASE = 16 : L'espace de stockage contient la base de données du logiciel (nécessaire pour la réplication serveur),
  • THSTG_DISABLE_FS_INDEXING = 32 : désactive l'indexation du contenu des données stockées par Windows au niveau du système de fichiers,
  • THSTG_ENABLE_FS_COMPRESSION = 64 : active la compression du contenu des données stockées par Windows au niveau du système de fichiers.

UserName : BSTR

Le nom d'utilisateur à exploiter si l'espace de stockage est situé sur un volume réseau nécessitant une authentification.

Password : BSTR

Le mot de passe à exploiter si l'espace de stockage est situé sur un volume réseau nécessitant une authentification.

VolumeBuffersSize : __int64

La taille des tampons à utiliser dans les opérations de lecture et d'écriture sur le volume de stockage. Par défaut, le logiciel utilise un tampon de 4 Mo lorsque le compte de stockage pointe sur un volume local, et 2 Mo lorsqu'il pointe vers un volume réseau. Il est recommandé d'utiliser ces valeurs lorsque vous crééez manuellement un nouveau compte de stockage.

CheckHealth : VARIANT_BOOL

Définis si la santé du périphérique doit être collectée.

FileSystem : BSTR readonly

L'identificateur du système de fichier, renvoyé par le système d'exploitation.

FreeSpace : __int64 readonly

L'espace de stockage disponible, renvoyé par le système d'exploitation.

TotalSize : __int64 readonly

La taille totale du périphérique du stockage, renvoyée par le système d'exploitation.

HealthStatus : enum NsHealthStatus readonly

L'état de santé actuel actuel de l'espace de stockage.

IsEnabled : VARIANT_BOOL readonly

Une variable booléenne indiquant si l'espace de stockage est activé ou non. Un espace de stockage désactivé ne peut pas être accédé pour lire ou stocker des données.

StorageErrors : __int64 readonly

Le nombre d'erreurs de stockage associées au périphérique de stockage.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 StorageID)

Charge en mémoire l'espace de stockage d'identificateur StorageID.

VARIANT_BOOL Update(NsConnection Connection)

Créée ou met à jour l'espace de stockage représenté par l'objet. Un espace de stockage est toujours créé désactivé, il devra être activé en utilisant la méthode Enable().

VARIANT_BOOL Delete(NsConnection Connection)

Supprime l'espace de stockage représenté par l'objet. Vous ne pouvez supprimer un espace de stockage que si aucune sauvegarde n'est placée sur ce dernier, qu'aucun utilisateur et qu'aucun groupe ne pointe sur celui-ci.

VARIANT_BOOL Enable(NsConnection Connection)

Active l'espace de stockage. La fonction renvoie true si la ressource a pu être montée avec succès.

VARIANT_BOOL Disable(NsConnection Connection)

Désactive l'espace de stockage. Si l'espace de stockage est un disque VHD ou un volume réseau, il est démonté.

VARIANT_BOOL ClearStorageErrors(NsConnection Connection)

Efface les erreurs de stockage enregistrées, si elles existent.

VARIANT_BOOL GetComments(NsConnection Connection, BSTR Comments)

Retourne les commentaires associés à l'objet.

VARIANT_BOOL SetComments(NsConnection Connection, BSTR Comments)

Définit les commentaires associés à l'objet.

NsCustomAttributes CustomAttributes(NsConnection Connection)

Renvoit les attributs personnalisés de l'objet.

VARIANT_BOOL CreateSnapshot(NsConnection Connection, __int64 SnapshotID, BSTR SnapshotPath)

Crée un cliché des données contenues dans l'espace de stockage, afin de pouvoir sauvegardes les données stockées dans un état stable et non mouvementé. La création d'un cliché n'est possible que si l'espace de stockage est stocké sur un système de fichiers compatible (NTFS) et qu'il y a assez d'espace libre pour effectuer l'opératon. Si l'opération réussit SnapshotID contient l'identificateur du cliché et SnapshotPath le chemin d'accès dans lequel est exposé. L'opération ne peut être réalisée que par un administrateur du serveur de sauvegarde.

VARIANT_BOOL DestroySnapshot(NsConnection Connection, __int64 SnapshotID)

Supprime le cliché de données identifié par SnapshotID

NsBackupCollection Backups(NsConnection Connection)

Retourne les sauvegardes stockées sur le compte de stockage.

NsServerAlertCollection Alerts(NsConnection Connection, VARIANT_BOOL OnlyRaised)

Renvoit les alertes associées à l'objet. Si OnlyRaised vaut true, seul les alertes déclenchées sont renvoyées.

Création d'un espace de stockage local et d'un espace de stockage réseau

Set connection = CreateObject("NsAPI.NsConnection")
Set sysutils = CreateObject("NsAPI.NsScriptUtils")

if connection.ConnectToLocalServer then

  ' Création d'un espace de stockage local.
  set myStorage = CreateObject("NsAPI.NsStorage")

  ' Les options nécessaires
  const nsStorageTypeFolder = 1
  const THSTG_USETRANSACTIONNALNTFS = 8

  myStorage.ID = -1 ' Constante nécessaire pour créer un nouvel espace de stockage
  myStorage.Name = "Mon espace de stockage" ' Le nom affiché dans la console
  myStorage.StorageType = nsStorageTypeFolder ' Le type de stockage : dossier de fichiers
  myStorage.StoragePath = "C:\Data" 'Le chemin de stockage
  myStorage.Options = THSTG_USETRANSACTIONNALNTFS ' Utiliser Transactionnal NTFS
  myStorage.UserName = ""  ' Pas de nom d'utilisateur nécessaire
  myStorage.Password = ""  ' Pas de mot de passe nécessaire
  myStorage.VolumeBuffersSize = 4 * 1024 * 1024 ' Tampons de 4 mégaoctets
  myStorage.CheckHealth = true ' Vérifier la santé de l'espace de stockage

  if myStorage.Update(connection) then ' Créer l'espace de stockage
    if myStorage.Enable(connection) then
      MsgBox "L'espace de stockage a été créé et activé !" & vbCrLf & "Identifiant unique : #" & sysUtils.Int64ToStr(myStorage.ID) & vbCrLf & "Système de fichiers : " & myStorage.FileSystem & vbCrLf & "Espace disponible : " & sysutils.SizeToStr(myStorage.FreeSpace)
    else
      MsgBox "L'espace de stockage a été créé mais n'a pas pu être activé." ' Utilisez la console d'admin pour voir le message d'erreur
    end if
  else
    MsgBox "Echec lors de la création de l'espace de stockage" ' Utilisez la console d'admin pour voir le message d'erreur
  end if

  ' Création d'un espace de stockage réseau
  ' Rappel : pour information, le service UB s'exécute par défaut dans le contexte
  ' d'un compte utilisateur système qui n'a pas accès au réseau.
  ' Pour manipuler des volumes réseau, soyez sûr que le compte associé au service
  ' de stockage est un compte administrateur local.
  set myNetworkStorage = CreateObject("NsAPI.NsStorage")

  const THSTG_NETSHARE = 1  ' L'espace de stockage est un partage réseau

  myNetworkStorage.ID = -1 ' Constante nécessaire pour créer un nouvel espace de stockage
  myNetworkStorage.Name = "Mon espace de stockage réseau" ' Le nom affiché dans la console
  myNetworkStorage.StoragePath = "\\NAS_01\BACKUPS"   'Le chemin de stockage
  myNetworkStorage.Options = THSTG_NETSHARE
  myNetworkStorage.UserName = "nas01"  ' L'utilisateur de partage
  myNetworkStorage.Password = "secret" ' Le mot de passe de partage
  myNetworkStorage.VolumeBuffersSize = 2 * 1024 * 1024 ' Tampons de 2 mégaoctets
  myNetworkStorage.CheckHealth = false

  if myNetworkStorage.Update(connection) then ' Créer l'espace de stockage
    if myNetworkStorage.Enable(connection) then
      MsgBox "L'espace de stockage réseau a été créé et activé !" & vbCrLf & "Identifiant unique : #" & sysUtils.Int64ToStr(myNetworkStorage.ID) & vbCrLf & "Système de fichiers : " & myNetworkStorage.FileSystem & vbCrLf & "Espace disponible : " & sysutils.SizeToStr(myNetworkStorage.FreeSpace)
    else
      MsgBox "L'espace de stockage a été créé mais n'a pas pu être activé." ' Utilisez la console d'admin pour voir le message d'erreur
    end if
  else
    MsgBox "Echec lors de la création de l'espace de stockage réseau" ' Utilisez la console d'admin pour voir le message d'erreur
  end if

  connection.Disconnect
else
  MsgBox "Connexion au serveur local impossible."
end if