или взять объект взять

есть требование загружать большие файлы (может быть до 200 МБ) в SharePoint из приложения Java / J2EE.

Мы знаем, что есть готовые веб-службы SharePoint, которые позволяют загружать файлы в SharePoint. Тем не менее, наша главная проблема заключается в том, что произойдет, если одновременные пользователи загрузят файлы Например, нам потребуется прочитать файл размером 200 МБ для каждого пользователя на сервере Java (сервере приложений), прежде чем вызывать SharePoint для отправки этих данных. Даже если одновременно работают 5 пользователей, потребляемая память будет составлять около 1 ГБ, а также может быть высокая загрузка ЦП. Есть ли какие-либо предложения, как обрабатывать память сервера, параллелизм загрузки файлов в этом сценарии?

Я думаю, что одним из вариантов может быть использование таких технологий, как Flash / Flex, которые не требуют другого сервера (сервера приложений Java) между ними - однако, интересно, как этого можно добиться на сервере J2EE?

Http: //servername/sitename/_vti_bin/copy.asmx

Спасибо

 earldouglas03 февр. 2011 г., 00:06
Почему загрузка файлов будет полностью сохранена в памяти? Разве они не буферизуются так, что большая часть данных находится на диске в определенный момент времени?
 user24354203 февр. 2011 г., 21:20
Мне нужно загрузить документ в SharePoint с помощью веб-службы SharePoint (Copy.CopyIntoItems). Этот метод принимает поток байтов файла полного файла. Или, пожалуйста, дайте мне знать, если есть способ загрузить файл в SharePoint побайтно. Возможно, я могу использовать приложение Java / J2EE для записи байта на диск, а затем выполнить другое пакетное задание, собирая файлы с этого временного диска - но это усложнит процесс.

Ответы на вопрос(1)

Вы пытаетесь использоватьSharepoint Copy ServiceИ этот сервис требует, чтобы поток был закодирован base64 в конверте Soap.Поскольку размер файла огромен, ваш размер SOAP-запроса становится огромным и требует больше памяти

Я могу придумать 2 варианта:

Я не знаю много о sharepoint, если можно указать местоположение файла для загрузки, чем отправка байтов, тогда вы можете ftp / sftp файл на сервер sharepoint и затем вызвать веб-сервис с указанием местоположения файла.

В Java вместо использования готового API для сообщений SOAP напишите пользовательский API. Когда пользователь загрузит файл, сохраните его как файл в кодировке base64. И тогда ваш пользовательский API создаст мыльное сообщение и передаст его вместо загрузки всего в память.

Для варианта 2: попробуйте, если вы можете отправить содержимое файла в виде мыльного вложения. Он становится немного сложным, если вы хотите отправить его как часть сообщения.

Попробуйте это. Я не уверен, работает ли.

 user24354207 февр. 2011 г., 20:48
SharePoint не предоставляет готовых сервисов, как указано в Варианте 1. Даже со вторым вариантом - у нас нет большого контроля над тем, как мы можем загрузить документ в SharePoint, потому что мы хотели бы использовать готовый веб-сервис, предоставляемый SharePoint. У нас есть один вариант - использовать Flash / Flex для загрузки файлов с клиента на сервер SharePoint напрямую с помощью веб-службы; так что посередине нет сервера приложений для обработки документов.

Ваш ответ на вопрос