Имя: Пароль:
IT
Веб-мастеринг
на чем писать сетевой сервис с размещением на хостинге?
0 p-soft
 
10.03.23
01:41
по примеру облака, простой сервис-посредник для обмена данными мобилы с компом?
скопились тут мелкие задачки..
1 arsik
 
гуру
10.03.23
01:51
(0) Зачем? Не проще взять какой ни будь owncloud
2 p-soft
 
10.03.23
02:07
(1) пока концепция, нужна возможность обрабатывать и временно хранить данные по месту.
при использовании сторонних сервисов слишком много нюансов и рисков, поэтому "все свое ношу с собой".
3 Сергиус
 
10.03.23
02:25
(0)Чтобы просто туда файлы закидывать или заметки писать?
4 Грю
 
10.03.23
04:05
(0) Бэкенд пиши на Node.js, Базу данных на MySQL
5 Грю
 
10.03.23
04:08
Я свои сервисы по хранению данных сейчас делаю на гитхабе. На бэкенде ничего нет, только репозиторий. Хостинг фронтенда тоже на гитхабе, с привязкой своего собственного домена.
Но сам фронт получается гораздо сложнее, поэтому тебе это не подойдет. Просто хвастаюсь.
6 Грю
 
10.03.23
04:10
Репозиторий открытый, но данные хранятся в зашифрованном виде. Шифруются и расшифровываются прямо в браузере.
7 Адинэснег
 
10.03.23
07:39
облачная wms ага.. вот достроят суверенный интернет и все ваши облака пендоские...
8 Garykom
 
гуру
10.03.23
09:05
(0) питон или го
лично я за го
9 Asmody
 
10.03.23
09:05
(0) пиши на хаскеле, должно прокатить
10 p-soft
 
10.03.23
09:15
(3) файлы, плюс некоторая логика.
сейчас вот есть задачка передать файл с мобилы на комп. со сторонними облаками вариант не подходит
11 p-soft
 
10.03.23
09:17
(5) молодец!

мне бы аргументов, чем хорош конкретный выбор..
12 p-soft
 
10.03.23
09:18
(7) облака - зло. но ради денег на что только не пойдешь)
13 Asmody
 
10.03.23
09:19
(10) со сторонними облаками не проходит, а со сторонним хостингом проходит?
14 p-soft
 
10.03.23
09:20
(13) какие задачи решает хостинг, а какие облако?
да, именно так
15 p-soft
 
10.03.23
09:22
(14) не, я сам скажу: хостинг - площадка, облако сервис
16 p-soft
 
10.03.23
09:23
(15) сейчас конечно немного намешали всего..
17 Asmody
 
10.03.23
09:29
(15) А хостинг в облаке?
18 sikuda
 
10.03.23
09:32
(17) Облако типа Yandex дорого, лучше взять минимальный хостинг на php и не морочится...
19 p-soft
 
10.03.23
09:35
(17) говорю же - намешали всего.
20 p-soft
 
10.03.23
09:36
(18) да! надо технологию выбрать.
21 sikuda
 
10.03.23
09:42
(20) Так классика PHP, база MySQL можно сразу движок от бесплатных типа Wordpress до продвинутых коммерческих типа Bitrix
Или вручную в директорию поупражняться (диалоговые окна в браузере)
https://code1c.sikuda.ru/wp-content/plugins/codemirror1c/run/question/
22 sikuda
 
10.03.23
09:48
У меня облако Yandex остановленная виртуальная машина запросила 450 руб/месяц. Прикрыл.
А для какого нибудь бложика достаточно 250 в месяц - https://blog.sikuda.ru
23 p-soft
 
10.03.23
09:52
(22) да, с облаками всего можно ждать. новое название старого способа отъема денег у населения)
24 Asmody
 
10.03.23
09:55
(22) у нетангелов 65 руб/мес минимальный VDS стоит
25 Asmody
 
10.03.23
09:57
(24)+ только он без внешнего IP будет
26 Shur1cIT
 
10.03.23
10:50
(0) рекомендовал бы го. Там многое из "коробки" работает при этом вполне удобно. И язык (на мой взгляд) дружелюбный для 1с ника.
27 p-soft
 
10.03.23
10:52
(26) спасибо, на нем и попробую
28 CepeLLlka
 
10.03.23
10:53
(0)Дома размести и пиши хоть на 1С
29 p-soft
 
10.03.23
11:04
(28) я с этим завязал, словив блок от провайдера..
30 Garykom
 
гуру
10.03.23
11:58
(29) с хрена ли?
31 Garykom
 
гуру
10.03.23
11:59
(30)+ нет понятно важный сервис который 24/7 не надо дома размещать
но при разработке, тестировании или если он не сильно критичный почему нет?
32 p-soft
 
10.03.23
12:02
(30) сломали и порнуху через меня слали какие то уроды))
33 Garykom
 
гуру
10.03.23
12:02
34 p-soft
 
10.03.23
12:02
(31) это есть, конечно
35 Garykom
 
гуру
10.03.23
12:02
(32) ха
ну тут уже извините, нарушение
36 Fragster
 
гуру
10.03.23
12:13
(0) похапэ и ларавель. самые дешевые с точки зрения хостинга.
затем vds с нодой, затем с питоном - все по увеличению цены.
37 Сергиус
 
10.03.23
12:33
(32)Надо было vpn настраивать..
38 p-soft
 
10.03.23
12:38
(37) я тогда решил что самый умный и перенес рабочий сайт на свой хостинг
39 Garykom
 
гуру
10.03.23
12:47
(36) эээ нет
самое дешевое с точки зрения хостинга (быстродействие/цена) это nginx+lua
затем golang
и уже затем php и прочие
40 Garykom
 
гуру
10.03.23
12:49
(39)+ да в свое время можно было найти очень дешевый php-хостинг
но оно было никаким по характеристикам и с кучей ограничений
41 sikuda
 
10.03.23
13:01
(40) Так смотря какая у тебя задача. php просто идеальный средний вариант
Для меня стек такой по мене увеличение возможности скорости (Эратосфен см. ниже)
- 1С и другие тяжелые скриптовые языки 100 сек
- php средний для сайтов - 27 сек
- Полноценная JVM (Jаvа, Kotlin) и уже полноценное окружение и библиотеки, многопоточность и асинхроность - 1 сек
Это выяснилось когда косяки 1С Исполнителя выясняли - https://blog.sikuda.ru/?p=3188
42 Garykom
 
гуру
10.03.23
13:08
(41) добавь в сравнение lua и go и вот тогда будет норм
43 Fragster
 
гуру
10.03.23
13:11
(39) это когда у тебя на шаред хостингах  nginx+lua ?
быстродействия пхп при этом хватает за глаза, все как всегда упирается в СУБД.
или там матрицы считать? ну тогда и луа тоже в топку, только плюссы и cgi
44 Fragster
 
гуру
10.03.23
13:11
я именно про цену хостинга пишу
45 Garykom
 
гуру
10.03.23
13:13
(44) ты же понимаешь что хостинг он не просто чтоб було поднимается а для решения конкретной задачи
и вот смысл в этом шаред хостинге php на котором в среднем будет всегда все тормозить а изредка просто ползать и только редко по ночам (или когда новый заводишь для привлекательности) летать?

и обычную среднюю VDS/VPS а еще лучше физику, пусть даже апельсинку/малинку куда то воткнуть
46 Garykom
 
гуру
10.03.23
13:15
(45)+ да есть конечно https://ru.wikipedia.org/wiki/KPHP
но гм
47 Fragster
 
гуру
10.03.23
13:20
(45) не зная задач автора предполагать что-то сложно. но на шаред хостингах за пару сотен рублей в месяц легко существуют проекты с одновременными десятками и сотнями пользователей онлайн и тысячами в течение суток. вопрос в том, что они делают и как данные обрабатываются. для обмена между мобильными приложениями в стиле 1с раз в минуту для сотни клиентов этого будет достаточно, если хостинг тупо шиной данных выступает.
48 Garykom
 
гуру
10.03.23
13:26
(47) эээ я на самом дешевом за 200р на https://firstvds.ru/products/vds_vps_hosting тестил на Го
и тысячи запросов одновременно легко держит
но стоит только воткнуть нечто на php и привет

реализация многопоточности на Го имхо пока наилучшая
49 Fragster
 
гуру
10.03.23
13:33
1гб рам и 1 ядро. многопоточность. там тупо ос и субд и всё. и если с пхп ты хотя бы об утечках не беспокоишься, то на го когда ты что-то кроме "пинг-понга" начнешь делать - все умрет. с пхп там тоже таких же запросов будет поменьше, но прям тоже много. особенно если подкрутить nginx правильно
50 Fragster
 
гуру
10.03.23
13:37
при этом где-нибудь тут https://masterhost.ru/hosting/speed/v2/ у тебя будет 128 мегабайт оперативки на запрос, без учета ОС и субд
51 Asmody
 
10.03.23
13:43
(48) ты с БД тестил или без? если без БД, то это ни о чём. Типичное веб-приложение, как и 1С, большую часть времени проводит в IO: считать запросик, распарсить параметры, отправить запрос в базу, получить запрос, сваять html/json. Нафига эратосфены и проч.?
52 Garykom
 
гуру
10.03.23
13:44
(50) какая гадость
130р базовый vs 199р в (48)
RAM 128Mb для PHP vs 1Gb в (48)
SSD 5Gb vs NVMe 15Gb в (48)
За выделенный IP-адрес отдельно платить + 140р vs 1 включен бесплатно в (48)
Каждый дополнительный 1Gb места 25-50р vs 40Gb за 349р всего в (48)

ЗЫ к терапевту!
53 Garykom
 
гуру
10.03.23
13:45
(51) с БД конечно
маша или постгря
54 Garykom
 
гуру
10.03.23
13:47
(53)+ у Golang есть один огромный минус относительно PHP
оно на память прожорливо и на копейках их плохо работает
но когда памяти нормально (не 128Mb а >2Gb RAM) то летает
в вот PHP глубоко насрать на увеличение памяти для одного инстанса, надо их много тогда поднимать
55 Fragster
 
гуру
10.03.23
13:58
(52) 128 гб на запрос. оно десятки запросов одновременно держит. и не нужнозаботится об ОС и СУБД =- этио в памяти не учитыватся
56 Fragster
 
гуру
10.03.23
14:01
ну и я хз, зачем выделенный айпишник. поддомен туда какой-то направил и всё работает
57 Garykom
 
гуру
10.03.23
14:01
(55) >десятки запросов одновременно держит

муахаха
"десятки"
)))
58 Garykom
 
гуру
10.03.23
14:02
(57)+ Golang + PostgreSQL у меня на паре гигов тысячи запросто запросов
59 Garykom
 
гуру
10.03.23
14:02
(56) а потом ип в бане и твой поддомен там же
60 Fragster
 
гуру
10.03.23
14:03
(27) да. на десятках запросов мы получаем уже больше гигабайта, без влияния ОС и СУБД. я исключительно с точки зрения ОП тебе говорю. а как у тебя будет работать твой сервис на ГО, если ос сожрет метров 400-500 в минимуме + что-то нужно под субд, в зависимости от данных - я хз.
61 Fragster
 
гуру
10.03.23
14:06
(58) большая часть висит на ИО + блокировках СУБД, о чем я тебе пишу в (47), Асмодей в (51)
затраты процессора на пхп и на го будут сравнимы (да, на ПХП цпу в разы больше, но в общей доле запроса это такой минимум, что им можно пренебречь). при этом от ошибок проектирования с бесконечным ростом какого-нибудь массива у тебя весь сервис твой не накроется в реальной работе за часы.
62 Garykom
 
гуру
10.03.23
14:18
63 Garykom
 
гуру
10.03.23
14:19
Имхо Go это (на данный момент времени) наилучший язык для написания бэкендов
Как 1С наилучшая платформа для ваяния учетных систем
64 Fragster
 
гуру
10.03.23
14:24
(62) https://i.imgur.com/YL4UlMp.png и чо? типа да, там дальнше идет график для 5000 одновременных запросов и там типа го всех делает. но в тесте у них числодробилка, что на интерпретируемых языках (т.е. все, кроме го) делать странно (хотя тут в пхп 8.х уже будет идти с предкомпиляцией, если правильно приготовить, и станет прям в разы быстрее).

а вообще статья про блокирующие операции и вычисление хэшей, а не про запросы к субд и реальность. А в реальности стэйтфулнесс сервисов на го, ноде и яве часто стреляет в ногу как-раз утечками (от кривого проектирования).
65 Garykom
 
гуру
10.03.23
15:54
(64) самый хитрый? выше и ниже посмотри
да в одном случае php оказался почти как go
но во всех прочих неа
66 Garykom
 
гуру
10.03.23
15:56
(65)+ причем оказался на уровне чисто потому что данная функция на С реализована в PHP
если взять какой алгоритм на языке PHP и там будет совсем плохо
67 Грю
 
10.03.23
16:50
(11) Нода хороша тем, что простой и понятный язык, который к тому же единственный подходящий как для фронта так и для бэка.
Мускуль хорош тем, что очень популярный и тоже простой. По нему много документации, и людей, способных помочь советом.
А что еще надо?
68 Грю
 
10.03.23
16:53
Если спрашивашь чем хорош гитхаб - то бесплатностью и надежностью. Одним словом - беззаботностью. Один раз закинул туда файл, и забыл про него. Он там будет вечно, ничего с ним не станет если забудешь заплатить или если мелкие провайдеры начнут закрываться из-за всяких кризисов и прочего.
69 Garykom
 
гуру
10.03.23
16:56
70 Fragster
 
гуру
10.03.23
17:07
(69) зато он обсыпан сахаром прикольным. а если ты думаешь, что с go get ситуация не как с npm install, то ты несколько ошибаешься
71 Грю
 
10.03.23
17:07
(21) PHP не рекомендую, если его еще не знаешь. Иначе придется изучать с нуля язык, который теряет популярность, и который не очень хороший сам по себе в принципе. Нет смысла тратить на это ресурсы. В то время как JS пригождается постоянно, даже в 1С используется, и по быстродействию хороший, и по удобству.
72 arsik
 
гуру
10.03.23
17:10
(71) JS - это для фронта, те люди, что пилят на нем бэк сумашедшие.
73 Грю
 
10.03.23
17:13
(69) 1. Приводить ссылку на хабр в качестве аргумента - позорно для программиста.
2. Там какой-то неудачник ругает язык программирования только потому, что ему попалась плохая библиотека. Это очень глупо.
3. Он использовал бабел вместо вебпака, за что и поплатился, потому что не высокого ума.

Не стоит доверять таким статьям, рассчитанным на ламеров.
74 Грю
 
10.03.23
17:16
(72) JS - это просто С-подобный язык. У него нет каких-то особенностей, делающих его языком только для фронта.
75 p-soft
 
10.03.23
17:23
(73) статья - перевод. там чувак стебется над библиотекой, в реальности, все что он пишет - шутка. но весело, да)
76 Garykom
 
гуру
10.03.23
17:25
(75) то что пишет нихрена не шутка
ибо зависимости в nodejs это пипец какой то
77 Garykom
 
гуру
10.03.23
17:26
js и nodejs прекрасная штука
но бибилиотеки это ужас

в итоге нормальный проект надо с нуля писать, самому а не завязываться на левые сторонние либы
78 Грю
 
10.03.23
17:42
(75) Ну тем более.
79 Грю
 
10.03.23
17:45
(77) Бред какой-то. Плохие библиотеки - это не свойство Node.js. Это явление есть во всех ЯП. Говорить что JS плохой, потому что на нем кто-то написал плохую библиотеку - это значит признать что других недостатков у JS нет, раз пришлось выискивать такие нелепые.
80 magicSan
 
10.03.23
19:13
(77) да, по этому только хард только пхп
81 Asmody
 
10.03.23
21:52
Что вы заладили "php, node, go"?
В мире столько прекрасных языков, пиши - не хочу.
clojure, elixir, nim, scala, rust.
Да тот же питон, в конце концов! Вот уж где точно есть вообще ФФФсё!
82 NorthWind
 
10.03.23
21:54
(0) питончик
83 Локи-13
 
10.03.23
22:04
тут питон однозначно.
под него даже шаред-хостинг можно взять
84 Грю
 
10.03.23
22:16
(0) рекомендую питон
85 p-soft
 
10.03.23
22:28
про питон услышал, всем спасибо. буду долго думать)
86 Грю
 
10.03.23
22:29
(85) Про питон это был прикол! :)))
87 Волшебник
 
модератор
10.03.23
22:30
(81) Питон портит мозг. Запишите там.
88 p-soft
 
10.03.23
22:32
да все, протокол составлен
89 Asmody
 
10.03.23
22:37
(87) если быстро и немного, то нормально.
но после php и 1С хуже не уже не станет
90 H A D G E H O G s
 
10.03.23
23:17
(0) 1С.
Потом перепишешь на что-то другое, если будет желание.
91 ProgAL
 
10.03.23
23:20
https://ztv.su/. 2гбт озу, 26 гбт диск, 200р.
92 H A D G E H O G s
 
10.03.23
23:21
(0) Ты потратишь на порядок больше человеко-часов (xxx руб/час) чем аренда Windows сервер под 1С + лицензии 1С.
93 p-soft
 
10.03.23
23:23
(90) на 1с все что надо есть. но держать мелкий сервис на 1с избыточно. у меня в принципе, есть микросервис на дельфях, под винду,  но хостить делфи тоже не хочется
94 p-soft
 
10.03.23
23:24
(92) ну справедливо, надо считать
95 Злопчинский
 
10.03.23
23:24
(93) сделай отправку через телеграм/ботов
?
96 ДедМорроз
 
10.03.23
23:25
У php есть только одно преимущество - это встраиваемость в apache web сервер и возможность нативно формирвать web-страницы.
В остальном,он ничуть не лучше.

Опять же,какой бы язык вы не выбрали,все библиотеки для взаимодействия со внешним миром будут написаны или на Си или на другом компиллируемом языке.
Так что сравнивать производительность очень сложно.
97 Злопчинский
 
10.03.23
23:27
98 p-soft
 
10.03.23
23:29
(95) мне сервис нужен. вот столкнулся с задачей перекидывать задание с тсд на комп при отсутствии управляющего сервера. сейчас использую эл.почту. но настраивать это муторно юзеру - плохой вариант

и чем дальше я ковыряю тему, тем чаще прихожу к мысли, что развивать то что я делаю на 1с не перспективно.
мобильное приложение уже "уперлось" в нюансы. да, начинать быстро, отлаживать бизнес-логику совсем красота.
но дальше тупик
99 p-soft
 
10.03.23
23:31
(98) возможно, то что я хочу укладывается в концепцию шины данных
100 Злопчинский
 
10.03.23
23:32
(98) и какие нюансы?
101 H A D G E H O G s
 
10.03.23
23:33
(98) Как ты со своего сервера будешь на комп клиента перекладывать?
102 Злопчинский
 
10.03.23
23:34
(99) ну, будет еще один слой передаст
103 H A D G E H O G s
 
10.03.23
23:34
(98) Регламентное задание будет просить у сервера, есть для него чего? Чтобы сервер у клиента не разворачивать?
104 p-soft
 
10.03.23
23:34
(100) самый основной - сложно монетизировать свою поделку, в классическом смысле.
105 Злопчинский
 
10.03.23
23:36
(104) и что, ты всю логику складских процессов хочешь на ТСД-андроиде реализовать или в облачном сервисе?
106 p-soft
 
10.03.23
23:36
(101) ну так же, как и с почтой, только клиенту будет символьный ключ выдаваться, вместо необходимости настраивать аккаунт
107 Грю
 
10.03.23
23:36
Задача простая, запросов мало, нагрузка на сервер никакущая. Тут нет смысла выбирать инструмент по быстродействию. Есть смысл выбирать только по опыту и приятности. Есди есть опыт в каком-то языке кроме 1С, то бери его однозначно. Если нет, то про JS я уже писал. Но в нем почти у любого есть опыт, так что еще один аргумент в пользу JS.
108 p-soft
 
10.03.23
23:37
(105) приложение придется переписать, и надо уже сейчас. бекэнд на 1с так и останется - это основа идеологии
109 Злопчинский
 
10.03.23
23:38
на твоем месте я бы НА ДАННОМ ЭТАПЕ - забил бы на проблемы отсутсвия связи с основным сервером-поставщиком данных.
считаем что связь есть всегда. на ТСД рисуем сообщение "связь ёк, повторить попытку обмена данными" в слчае трабла и всё.
110 p-soft
 
10.03.23
23:39
(107) ну да. но это текущие задачи. а мысли бродят..)
111 Злопчинский
 
10.03.23
23:39
(108) и чо переписывать? нет связи - процесс стоит. всё.
и все вопросы порешаются со связью очень быстро.
112 p-soft
 
10.03.23
23:40
(109) у моей проги два режима работы: интегрированный, по нему вопросов нет и без привязки к учетной системе
113 Злопчинский
 
10.03.23
23:43
(112) что значит "без привязки к учетной системе"? поставщиком и получателем данных с ТСД кто будет? вообще никто?!
114 p-soft
 
10.03.23
23:44
(112) я сейчас в плотную занялся продвижением мобильной части. собственно, отсюда и вопросы. тема хороша, вопросы закрывает, но рынку нет дела до моих мыслей)
115 p-soft
 
10.03.23
23:48
(113) без привязки - это значит что системы напрямую не связаны. сейчас я только позволяю получить данные с тсд: простая обработка лезет на почту и выводит содержимое задания юзеру. это можно скопировать и загрузить средствами учетной системы.
все бесплатно и достаточно быстро
116 Злопчинский
 
10.03.23
23:51
117 p-soft
 
10.03.23
23:53
(116) именно. только медленно и печально.
118 Злопчинский
 
10.03.23
23:54
(117) ну так любая универсальная система будет медленной и печальной.
119 Злопчинский
 
10.03.23
23:55
а в ином случае ты вывалишься с того рынка, на который нацеливался.
120 p-soft
 
10.03.23
23:57
(118) я не про работу программы)
у моей проги есть фичи, которые надо научиться продавать)
121 p-soft
 
10.03.23
23:59
интересно, сколько времени займет переучивание на java?))
122 Злопчинский
 
11.03.23
00:06
(120) какие фичи? растяни баян, открой дверь в новы чудный мир.. что такого что прямо вот надо научиться продавать...
я - очередной Ипшник с магазином на 100 квадартов. что за фичи ты хочешь мне продать?
123 Злопчинский
 
11.03.23
00:06
(121) Брось бяку, брось!
124 p-soft
 
11.03.23
00:13
(122) это надо показывать. как можно рассказать, что удобно, быстро и денег не просит?)
125 p-soft
 
11.03.23
00:17
(123) вот и придется бяку переписывать(
126 Злопчинский
 
11.03.23
00:18
(124) ты не можешь свою фичу рассказать собственнику за 30-50 слов?
127 Злопчинский
 
11.03.23
00:18
(124) если денег не просит, то что ты собрался монетизировать?
128 p-soft
 
11.03.23
00:20
(126) пока нет, сижу вот слова подбираю. каждый хочет видеть что то свое, возьми угадай.
129 p-soft
 
11.03.23
00:21
(127) не просит после того как. а дальше надо придумать как сделать чтобы не просило - намекало. а сейчас тупо не просит(
130 Злопчинский
 
11.03.23
00:26
я бы на данный момент тупо сосредоточился на связке твоего МиМиМишного решения с 1С и простым каналом обмена. без всякой шины данных. КИС отдает данные в том формате КОТОРЫЙ когда-то потом будет на выходе ШД (то что забирает/получает ТДС), а ТСД принимает этот формат и отдает в том формате, который будет на стороне КИС (то что забирает/получает КИС), типа эмулируя наличие ШД.
131 Злопчинский
 
11.03.23
00:26
будет этот канал обмена емайлом или фтпшным сервером - пофиг.
132 H A D G E H O G s
 
11.03.23
00:28
(121) Полгода минимум
133 Злопчинский
 
11.03.23
00:28
(130) ..то есть то что у тебя есть сейчас. Догони это до продуктива, который продается практически из коробки и/или с минимальными настройками.
делать суперкомбайн сразу - бяка будет. или не бяка но долго.
134 p-soft
 
11.03.23
00:37
(130) это я прошел год назад, сейчас все отлажено и работает.
говорю же - вопросы маркетинга
(133) этим и занимаюсь.
135 Злопчинский
 
11.03.23
00:41
(134) ну и ок. ваяй дальше.
136 p-soft
 
11.03.23
00:42
(132) это только на привыкание к инструменту. в том что есть сейчас логики очень много получилось. я рефакторинг не сильно глобальный две недели делал. но сейчас смотрю как это все выглядит.. может для 1с это и норма, но продавать это нельзя. поэтому прога только бесплатная.
137 p-soft
 
11.03.23
00:44
(136) поэтому и речь про сервисы..
138 NorthWind
 
11.03.23
12:46
(98) тут есть нюанс... Кое-кто из конечных юзеров может отказаться работать с продуктом при наличии облачного компонента, который они не контролируют.
139 p-soft
 
11.03.23
12:52
(138) для этих у меня есть платное решение, работающее в локалке.
но народ избалованный, зажратый, а надо всем угодить))
140 Garykom
 
гуру
11.03.23
13:25
(0) держи мой старый лисапед

package main

import (
    //    "database/sql"
    "encoding/json"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/gorilla/mux"
    //"github.com/jmoiron/sqlx"
    "log"
    //"math/rand"
    "net/http"
    //b "rest/entities"
    //"strconv"
    "bufio"
    "github.com/sethvargo/go-password/password"
    "io/ioutil"
    "os"
    "path/filepath"
)

type ID struct {
    ID string `db:"id"`
}

func getSolt(long, digits, symbols int, noUpper, allowRepeat bool) string {
    // Generate a password that is 64 characters long with 10 digits, 10 symbols,
    // allowing upper and lower case letters, disallowing repeat characters.
    result, err := password.Generate(long, digits, symbols, noUpper, allowRepeat)
    if err != nil {
        fmt.Println(err)
    }
    return result
}

func ReadLines(path string) ([]string, error) {
    file, err := os.Open(path)
    if err != nil {
        return nil, err
    }
    defer file.Close()

    var lines []string
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        lines = append(lines, scanner.Text())
    }
    return lines, scanner.Err()
}

func WriteLines(lines []string, path string) error {
    file, err := os.Create(path)
    if err != nil {
        return err
    }
    defer file.Close()

    w := bufio.NewWriter(file)
    for _, line := range lines {
        fmt.Fprintln(w, line)
    }
    return w.Flush()
}

func getDir() string {
    ex, err := os.Executable()
    if err != nil {
        fmt.Println(err)
    }
    exPath := filepath.Dir(ex)
    //fmt.Println(exPath)
    return exPath
}

func getNewID(w http.ResponseWriter, r *http.Request) {
    var id ID
    id.ID = getSolt(10, 5, 0, true, true)
    fmt.Println("NewID: " + id.ID)

    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(id)
}

func setFile(w http.ResponseWriter, r *http.Request) {
    params := mux.Vars(r)
    id := params["id"]
    fileType := params["file"]

    dirname := getDir()
    filename := dirname + "/" + id + "_" + fileType
    fmt.Println("Set file: " + filename)
    var lines []string

    bData, err := ioutil.ReadAll(r.Body)
    if err != nil {
        fmt.Println(err)
    }

    jsonData := string(bData)
    //fmt.Println("jsonData:")
    //fmt.Println(jsonData)

    lines = append(lines, string(jsonData))
    err = WriteLines(lines, filename)
    if err != nil {
        fmt.Println(err)
    }

}

func getFile(w http.ResponseWriter, r *http.Request) {
    params := mux.Vars(r)
    id := params["id"]
    fileType := params["file"]

    dirname := getDir()
    filename := dirname + "/" + id + "_" + fileType
    fmt.Println("Get file: " + filename)

    lines, err := ReadLines(filename)
    if err != nil {
        fmt.Println(err)
    }

    w.Header().Set("Content-Type", "application/json")
    for _, value := range lines {
        w.Write([]byte(value))
    }
}

func main() {
    r := mux.NewRouter()

    r.HandleFunc("/getnewid", getNewID).Methods("GET")
    r.HandleFunc("/users/{id}/files/{file}", setFile).Methods("POST")
    r.HandleFunc("/users/{id}/files/{file}", getFile).Methods("GET")

    log.Fatal(http.ListenAndServe(":1717", r))
}


Сначала получаем новый id
GET http://1cvpn.ru:1717/getnewid

Затем можно заливать файлы
POST http://1cvpn.ru:1717/users/{id}/files/{file}

И аналогично скачивать
GET http://1cvpn.ru:1717/users/{id}/files/{file}

вот залитый файл например
http://1cvpn.ru:1717/users/433zboc6d6/files/goods
141 Garykom
 
гуру
11.03.23
13:38
(140)+ писалось специально для поднятия сервиса обмена между МП 1С и конфой на компе
аля ТСД инвентаризации/сканирования
142 p-soft
 
11.03.23
13:43
(141) вот-вот, спасибо. а на чем это?
у меня такое же на дельфях есть, под винду в виде сервиса.
правда я через свою шнягу еще и напрямую в таблицы 1с77 писал, помимо обмена файлами) у меня резервирование удаленное для филиалов было сделано)
143 Garykom
 
гуру
11.03.23
13:48
(142) Golang
144 Garykom
 
гуру
11.03.23
13:50
(143)+ можно винда, линукс, мак, андроид и т.д.
и даже роутер openwrt/keenetic/microtik, короче любой с entware/opkg
145 Garykom
 
гуру
11.03.23
13:52
(142) >через свою шнягу еще и напрямую в таблицы 1с77

я на го делал веб-сервис для работы с 1С 7.7 через ole
146 p-soft
 
11.03.23
13:52
(145) да, были времена интересных решений)
147 Garykom
 
гуру
11.03.23
13:54
сейчас вот хочу наваять http-сервис аля прокси для хранилища конфигураций 1С
чтобы комменты контролировал и т.д.
чтобы можно было разными версиями платформы/конфигуратора 1С подключаться
и даже EDT использовать нативно при разработке с хранилищем вместо гит
148 Garykom
 
гуру
11.03.23
13:56
(147)+ аналог https://infostart.ru/1c/articles/1769327/ но на Golang без iis и даже без апача
149 novichok79
 
11.03.23
18:41
Golang, я прочел книжку "golang для профи", нарейсал пет проект и свичнулся в это ваше настоящее программирование. для сетевых приложений с кучей пользователей - гошечка с ее горутинками и толковой стандартной библиотекой самое оно.
150 Кирпич
 
12.03.23
17:39
Зачем чего то, на чем то писать. Запусти на VPS готовый брокер сообщений. NATS какой нибудь. И извращайся сколько душеньке угодно.
151 Garykom
 
гуру
12.03.23
17:58
(150) они все неудобные и сложные
я пробовал NATS и оказалось хрень еще та
152 Garykom
 
гуру
12.03.23
18:01
в итоге пришел к минималистическому решению (140)
работает по http rest api
тупо запись-чтение файликов (json) в разрезе уникальных id
id - могут обозначать что угодно, хоть сервер, хоть клиента, хоть пару узлов и т.д.
имена файлов тоже сам как надо

в реальном решении понятно надо допилить удаление устаревших файлов и/или команды для их удаления
но это не обязательно
153 p-soft
 
12.03.23
18:15
(151) есть еще один фактор - это не твой сервис, ты им не управляешь на достаточном уровне.
154 Кирпич
 
12.03.23
19:03
(151) уж NATS то чем тебе не угодил. куда проще то.
155 Грю
 
13.03.23
04:00
Зачем еще VPS? Есть готовые сервисы, вот например, можно бесплатно: https://www.cloudamqp.com/

Для обмена данными само то.
156 Кирпич
 
13.03.23
08:47
(155) там цены конские
157 Грю
 
13.03.23
17:23
(156) ХЗ, я не особо смотрел условия, пользовался бесплатным тарифом, мне хватало для тестирования. Может и для ТС пойдет.
158 p-soft
 
13.03.23
17:30
(157) тс согласен максимум на хостинг, сервис он хочет иметь свой.
я временно закрыл вопрос одним из предложенных вариантов, уже все работает.
посмотрю как пойдет и чуть позже буду нормально делать.
всем спасибо!
159 Грю
 
14.03.23
16:13
(158) И что выбрал по итогу?
160 p-soft
 
14.03.23
16:33
(159)  как описано в (28). это бесплатная часть проекта, посмотрю во что выльется, там уже решу на чем писать и где размещать. и надо ли это мне
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший