Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Передача очень большого файла с сервера на клиент

Передача очень большого файла с сервера на клиент
Я
   conscious
 
10.09.21 - 10:48
Файл объемом 300 Гб по запросу пользователя нужно получить с сервера.
Как это сделать оптимальнее и желательно с показом индикатором загрузки?
Сейчас сделано так, как написано ниже. Это неудобно, асинхронно, непонятно, через какое время файл полностью загрузится в каталог, выбранный пользователем.

&НаСервере
Функция ПолучитьФайлССервераНаСервере(ПутьКФайлу)
    Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКФайлу), ЭтаФорма.УникальныйИдентификатор);
    Возврат Адрес;
КонецФункции

&НаКлиенте
Процедура ПолучитьФайлССервера(Команда)
    ТекДанные = Элементы.Файлы.ТекущиеДанные//таблица на форме

    НачатьПолучениеФайлаССервера(ПолучитьФайлССервераНаСервере(ТекДанные.ПутьКФайлуНаСервере), ТекДанные.Имя, Новый ПараметрыДиалогаПолученияФайлов("Получение файла " + ТекДанные.Имя, Истина));
КонецПроцедуры

   ДенисЧ
 
1 - 10.09.21 - 10:51
В сетевую шару выложи на сервере.
Пусть зверь сам его забирает.

Это вообще чушЪ - такие файлы через 1с гонять.
   1Сергей
 
2 - 10.09.21 - 11:02
Хоум видиво в 4к складируете?
   Kassern
 
3 - 10.09.21 - 11:03
(2) больше похоже на зеркальную копию какого нить сервака)
   Галахад
 
4 - 10.09.21 - 11:11
Разбить на 100 частей.
Грузить по одной части.
После загрузки части в прогрессбар добавлять полоску. :-)
   lodger
 
5 - 10.09.21 - 11:13
(0) там следующая ступень эволюции асинхронных методов работы с файлами же был, где есть индикатор загрузки?
   conscious
 
6 - 10.09.21 - 11:17
(1) Расшаривать нельзя, т.к., не ко всем файлам в каталоге должен быть доступ у пользователей.

(2) (3) Там xml-ки.

(4) РазделитьФайл() будет подъедать место на диске и, наверное, будет медленно... Хотя, попробовать, конечно, можно...

(5) Подскажите, куда смотреть, плз.
   VladZ
 
7 - 10.09.21 - 11:22
(0) Что за странная мания пихать всё в 1С?
1с - это платформа для автоматизации учета, а не порно-сервис.
   Смотрящий
 
8 - 10.09.21 - 11:24
(0) А что там такое в 300гб то ?
   acht
 
9 - 10.09.21 - 11:28
(7) > платформа для автоматизации учета, а не порно-сервис.
Для кого как. Иногда автоматизация учета вторична.
   Garykom
 
10 - 10.09.21 - 11:35
(0) битторрент
   Garykom
 
11 - 10.09.21 - 11:35
(10) и это не шутка
   ildary
 
12 - 10.09.21 - 12:52
(10) можно не сам битторрент, а родственная технология, например SyncThing или Resilio
   conscious
 
13 - 10.09.21 - 13:11
(10) (12) Вы предлагаете реализовать это на 1С?
   Garykom
 
14 - 10.09.21 - 13:21
(13) есть готовые библиотеки и даже в браузере в полеhtml можно
   timurhv
 
15 - 10.09.21 - 13:38
(0) Разве там не стоит ограничение в 4Гб?
   Вафель
 
16 - 10.09.21 - 13:40
НачатьПолучениеФайлаССервера()
Там есть и прогресс. но прогресс только на клиенте, в вебе нет
   acanta
 
17 - 10.09.21 - 13:43
Куда делся?
   timurhv
 
18 - 10.09.21 - 13:43
(15) или это только с клиента на сервер, обратно работает?
   Вафель
 
19 - 10.09.21 - 13:44
а нет попутал, только на помещение
   H A D G E H O G s
 
20 - 10.09.21 - 14:02
Отправляйте в фоне и крутите gif-ку, че как дети то?
   Kassern
 
21 - 10.09.21 - 14:02
(20) надеюсь с котиком?
   Вафель
 
22 - 10.09.21 - 14:03
так оно и так в фоне отправляется
   H A D G E H O G s
 
23 - 10.09.21 - 14:06
   timurhv
 
24 - 10.09.21 - 14:38
(6) >Там xml-ки
Если запаковать перед отправкой?

>Расшаривать нельзя, т.к., не ко всем файлам в каталоге должен быть доступ у пользователей
Сделать промежуточную помойку, туда копировать и оттуда забирать?
ПоместитьВоВременноеХранилище - сколько ОЗУ потребляет на сервере 1С с 300Гб файлом?
   timurhv
 
25 - 10.09.21 - 14:39
(24) Помойка на этом же сервере, ссылку на файл через хардлинк.
   Aleksey
 
26 - 10.09.21 - 14:46
Поднять фтп и передать через локальный фтп
   lodger
 
27 - 10.09.21 - 14:51
(26) если встроить в свою конфу подсистему торрент-трекера, то будет быстрее ФТП, когда пиров больше 1. а когда хостов станет больше 1, тогда вообще ракета.
   Garykom
 
28 - 10.09.21 - 14:57
(0) файлик разбиваешь на кусочки пронумерованные и отдельно передаешь на клиента там собираешь
вуаля готов свой битторрент протокол
   Garykom
 
29 - 10.09.21 - 14:57
(28)+ % считается сколько кусочков относительно всего доставлено
   ДедМорроз
 
30 - 12.09.21 - 10:34
Даже разбивать не надо, ЧтениеДанных это потоковое чтение - прочитал кусок и отправил на клиента,а там такая же запись.
Единственное,нужно читать в фоновом задании,чтобы объект был жив после передачи блока данных на клиента.
 
 


Список тем форума
 
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.