Как согласовать эти два API при работе с потоками, не перегружая память?
Я использую Iconic Zip Library для архивирования.
Когда пришло время застегнуть молнию, я хочу вызвать их метод ZipFile.Save(Stream outputStream).
На стороне Telligent, чтобы сохранить содержимое потока в файл, вы используете их метод ICentralizedFileStorageProvider.AddUpdateFile(путь строки, строка fileName, Stream contentStream).
Как видите, вы предоставляете Iconic Zip Library поток, в который они могут писать, но чтобы сохранить файл, Telligent не предоставляет вам поток для записи, вам нужно предоставить им поток, чтобы они могли читать из.
Конечно, я мог бы использовать MemoryStream, загрузить его, передав ему Iconic Zip Library, а затем выгрузить его, передав его в API Telligent, но это привело бы к загрузке всего zip-файла в память одновременно. Я знаю, что конечный почтовый индекс будет огромным, поэтому загрузка его целиком в память невозможна; Мне нужно сделать какую-то буферизацию.
Как мне согласовать эти два API? Как мне построить мост между ними, где данные могут передаваться, не перегружая память? Есть идеи?