|
Передача файлов, в т.ч. больших
|
|||
---|---|---|---|
#18+
Приветствую, коллеги! Как вообще передавать файлы при помощи веб-сервиса - уже разобрался: byte[] -> base64string. Как передавать большие файлы ЗА РАЗ - тоже: увеличить размер сообщения в веб-конфиге И на стороне сервера, И на стороне клиента. Но считаю это костылём. Подскажите, как ещё можно обмениваться большими файлами при использовании веб-сервиса и без использования файлообменников/FTP. В идеале - и без промежуточного сохранения на сервере, т.к. в конечном счёте эти файлы либо пишутся в БД (BLOB), либо извлекаются из БД для передачи потребителю сервиса. Чаще всего, это картинки/PDF/многостраничные TIFF, но возможны и другие потребности. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 11:48 |
|
Передача файлов, в т.ч. больших
|
|||
---|---|---|---|
#18+
КириллН, Large Data and Streaming ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 11:57 |
|
Передача файлов, в т.ч. больших
|
|||
---|---|---|---|
#18+
Видел интересное решение с передачей файла по частям через серию вызовов веб-сервиса, но в этом случае надо промежуточно сохранять этот файл на диск на сервере. Потребитель обращается к сервису для получения файла. Сервис видит, что файл большой, сохраняет его частями на диск в папку с GUID-именем и отправляет потребителю GUID. Потребитель серией запросов к сервису выкачивает все части. Потребитель "склеивает" на своей стороне эти части. Таким образом, и прогресс можно отобразить, и любого размера файлы передавать. но требуется сохранение сервисом на диск. Если бы была возможность как-то хранить части файла в экземпляре объекта, а не на диске, и "дочитывать" его по мере передачи очередного фрагмента байт... А вот как - не знаю. Веб-сервис, насколько я понял, инстанцируется ИИСкой при каждом обращении потребителя. Значит, сам сервис не может хранить у себя части и должен обращаться к сторонней службе-читалке файлов (из базы)... В общем, пока сложно понять. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 11:58 |
|
Передача файлов, в т.ч. больших
|
|||
---|---|---|---|
#18+
КириллНПодскажите, как ещё можно обмениваться большими файлами при использовании веб-сервиса и без использования файлообменников/FTP. Large Data and Streaming КириллНВ идеале - и без промежуточного сохранения на сервере, т.к. в конечном счёте эти файлы либо пишутся в БД (BLOB), либо извлекаются из БД для передачи потребителю сервиса.При чтении из БД таки лучше создать на сервере временный файл на время передачи. Держать открытым DbDataReader пока клиент скачивает "много данных" как-то не очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 11:58 |
|
Передача файлов, в т.ч. больших
|
|||
---|---|---|---|
#18+
buser Large Data and Streaming Благодарю за ценную ссылку! Алексей КПри чтении из БД таки лучше создать на сервере временный файл на время передачи. Держать открытым DbDataReader пока клиент скачивает "много данных" как-то не очень. Ну, если best practices рекомендуют промежуточный файл, то так тому и быть. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 13:03 |
|
|
Start [/forum/topic.php?fid=19&fpage=2&tid=1396707]: |
0ms |
get settings: |
17ms |
get forum list: |
7ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
150ms |
get tp. blocked users: |
3ms |
others: | 327ms |
total: | 565ms |
0 / 0 |