Хотя я признаю, что не знаю CMIS, загрузка файлов с помощью REST - это просто классическая загрузка файлов HTTP, где вы интерпретируете имя пути как указание ресурса, который нужно обновить или заменить. Базовое использование REST предполагает использование (HTTP) GET (метод) как «чтение файла», POST как «создание файла при выборе нового имени» (обычно с последующим перенаправлением, чтобы клиент мог узнать, какое имя было выбрано), PUT как «создать файл с заданным именем или заменить содержимое этого файла» и DELETE как «удалить файл». Более того, вам не нужно поддерживать все эти методы; делайте так мало, как вы хотите (но это хорошая идея для поддержки некоторых GET-запросов, даже если просто позволить людям, которые их загрузки работали).
Тем не менее, при реализации вы хотите во всех случаях избегать хранения большей части данных файла в памяти; это не масштабируется. Лучше потратить время на реализацию потоковой передачи, чтобы вам никогда не приходилось буферизовать больше нескольких килобайт. Конечно, вы можете сделать это с помощью REST / HTTP. (Вы могли бы даже сделать это с SOAP, используя MTOM, но это, вероятно, выходит за рамки ...)