0

Je suis un peu en difficulté ici. Voici le contexte:Bibliothèque de documents Sharepoint stockant des fichiers sur le système de fichiers

Un de nos clients nous a demandé de développer une solution alternative pour stocker des documents d'une bibliothèque de documents dans la base de données de contenu car leur base de données de contenu croît trop vite. Ils nous ont fourni un stockage réseau afin que les documents puissent être stockés dans le système de fichiers à la place. Après googling un peu, j'ai trouvé une fonctionnalité appelée Remote Blob StorageRBSRBS, mais comme le disent les références, il s'agit d'une fonctionnalité par base de données contenu qui n'est pas acceptable pour le contexte. L'autre option que je suis venu avec l'utilisation de SPItemEventReceiver de telle sorte que dans le ItemAdded événement que je pouvais sauver le SPFile associée à la ListItem des SPItemEventProperties propriété du système de fichiers et peut-être supprimer ou tronquer l'objet SPFile

public static void DeleteAssociatedFile(SPWeb web, SPListItem item) 
{ 
    try 
    { 
     if (item == null) { throw new ArgumentNullException("item"); } 

     if (item.FileSystemObjectType == SPFileSystemObjectType.File) 
     { 
      web.AllowUnsafeUpdates = true; 

      using (var fileStream = item.File.OpenBinaryStream()) 
      { 
       if (fileStream.CanWrite) 
       { 
        fileStream.SetLength(0); 
       } 
      } 

      item.File.Update(); 
     } 
    } 
    catch (Exception ex) 
    { 
     // log error message 
     Logger.Unexpected("ListItemHelper.DeleteAssociatedFile", ex.Message); 

     throw; 
    } 
    finally 
    { 
     web.AllowUnsafeUpdates = false; 
    } 
} 

en le forçant à ne pas stocker son contenu dans la base de données de contenu. Mais ça n'a pas marché. Chaque fois que je parviens à supprimer ou à tronquer le fichier SPFile associé à ListItem, l'élément ListItem est supprimé de la bibliothèque de documents ou le fichier n'est pas affecté par la modification. Ma question est la suivante: existe-t-il une solution à ce problème? D'autres pensées qui pourraient m'aider dans cette quête?

Merci d'avance!

Répondre

1

Comme vous l'avez demandé à d'autres pensées

  1. Une chose à venir dans mon esprit est un lecteur pour les entreprises au lieu de stockage réseau
  2. Une autre est de développer le téléchargement de fichier personnalisé, téléchargez le fichier directement au réseau de stockage et une fois téléchargé, ajoutez une entrée dans la liste SharePoint.
+0

Nous vous remercions de vos commentaires. Est-ce que vous faites une copie du formulaire de téléchargement ** _ layouts ** et que vous l'utilisez pour répondre à mes besoins? –