J'ai créé une application WSSv3 qui télécharge des fichiers en petits morceaux; quand chaque élément de données arrive, je le conserve temporairement dans un champ de type de données d'image SQL 2005 pour des raisons de performance **.Téléchargement de fichiers volumineux dans WSS v3
Problème à venir lorsque le téléchargement se termine; J'ai besoin de déplacer des données de mon serveur SQL vers Sharepoint Document Library via le modèle d'objet WSSv3.
En ce moment, je ne peux penser à deux approches:
SPFileCollection.Add(string, (byte[])reader[0]); // OutOfMemoryException
et
SPFile file = folder.Files.Add("filename", new byte[]{ });
using(Stream stream = file.OpenBinaryStream())
{
// ... init vars and stuff ...
while ((bytes = reader.GetBytes(0, offset, buffer, 0, BUFFER_SIZE)) > 0)
{
stream.Write(buffer, 0, (int)bytes); // Timeout issues
}
file.SaveBinary(stream);
}
Existe-t-il un autre moyen d'accomplir avec succès cette tâche? ** Raisons de performance: si vous essayez d'écrire chaque morceau directement à Sharepoint, vous remarquerez une dégradation des performances au fur et à mesure que le fichier grossit (> 100Mb).
Quelle est la taille moyenne et maximale des fichiers? –
la plupart des fichiers de moins de 5 Mo; gros fichiers (~ 500 Mo) sont juste un petit ensemble –