Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Передача файлов, в т.ч. больших / 5 сообщений из 5, страница 1 из 1
30.08.2017, 11:48
    #39512690
КириллН
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача файлов, в т.ч. больших
Приветствую, коллеги!
Как вообще передавать файлы при помощи веб-сервиса - уже разобрался: byte[] -> base64string.
Как передавать большие файлы ЗА РАЗ - тоже: увеличить размер сообщения в веб-конфиге И на стороне сервера, И на стороне клиента. Но считаю это костылём.

Подскажите, как ещё можно обмениваться большими файлами при использовании веб-сервиса и без использования файлообменников/FTP. В идеале - и без промежуточного сохранения на сервере, т.к. в конечном счёте эти файлы либо пишутся в БД (BLOB), либо извлекаются из БД для передачи потребителю сервиса. Чаще всего, это картинки/PDF/многостраничные TIFF, но возможны и другие потребности.
...
Рейтинг: 0 / 0
30.08.2017, 11:57
    #39512698
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача файлов, в т.ч. больших
КириллН, Large Data and Streaming
...
Рейтинг: 0 / 0
30.08.2017, 11:58
    #39512699
КириллН
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача файлов, в т.ч. больших
Видел интересное решение с передачей файла по частям через серию вызовов веб-сервиса, но в этом случае надо промежуточно сохранять этот файл на диск на сервере.

Потребитель обращается к сервису для получения файла.
Сервис видит, что файл большой, сохраняет его частями на диск в папку с GUID-именем и отправляет потребителю GUID.
Потребитель серией запросов к сервису выкачивает все части.
Потребитель "склеивает" на своей стороне эти части.
Таким образом, и прогресс можно отобразить, и любого размера файлы передавать. но требуется сохранение сервисом на диск.

Если бы была возможность как-то хранить части файла в экземпляре объекта, а не на диске, и "дочитывать" его по мере передачи очередного фрагмента байт... А вот как - не знаю. Веб-сервис, насколько я понял, инстанцируется ИИСкой при каждом обращении потребителя. Значит, сам сервис не может хранить у себя части и должен обращаться к сторонней службе-читалке файлов (из базы)...
В общем, пока сложно понять.
...
Рейтинг: 0 / 0
30.08.2017, 11:58
    #39512701
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача файлов, в т.ч. больших
КириллНПодскажите, как ещё можно обмениваться большими файлами при использовании веб-сервиса и без использования файлообменников/FTP. Large Data and Streaming
КириллНВ идеале - и без промежуточного сохранения на сервере, т.к. в конечном счёте эти файлы либо пишутся в БД (BLOB), либо извлекаются из БД для передачи потребителю сервиса.При чтении из БД таки лучше создать на сервере временный файл на время передачи. Держать открытым DbDataReader пока клиент скачивает "много данных" как-то не очень.
...
Рейтинг: 0 / 0
30.08.2017, 13:03
    #39512761
КириллН
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача файлов, в т.ч. больших
buser Large Data and Streaming
Благодарю за ценную ссылку!

Алексей КПри чтении из БД таки лучше создать на сервере временный файл на время передачи. Держать открытым DbDataReader пока клиент скачивает "много данных" как-то не очень.
Ну, если best practices рекомендуют промежуточный файл, то так тому и быть. Спасибо!
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Передача файлов, в т.ч. больших / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]