Я создал приложение WSSv3, которое загружает файлы небольшими порциями; когда приходит каждый фрагмент данных, я временно сохраняю его в поле типа данных изображения SQL 2005 по соображениям производительности **.
Проблема возникает, когда загрузка заканчивается; Мне нужно переместить данные с моего SQL Server в библиотеку документов Sharepoint через объектную модель WSSv3.
Прямо сейчас я могу придумать два подхода:
SPFileCollection.Add(string, (byte[])reader[0]); // OutOfMemoryException
а также
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);
}
Есть ли другой способ успешно выполнить эту задачу?
** Причины производительности: если вы попытаетесь записать каждый фрагмент непосредственно в Sharepoint, вы заметите снижение производительности по мере увеличения размера файла (> 100 МБ).