Возможно ли сконвертировать профиль zpprofile в текст и использовать?

backoff

Client
Регистрация
20.04.2015
Сообщения
6 095
Благодарностей
6 496
Баллы
113
Приветствую.
Встал интересный вопрос, вроде как обсуждалось, но не нашел ответа.

Короче говоря ситуация такая, есть некое количество профилей, для работы на одном сервере, за глаза хватает и файлов, но встал вопрос масштаба, и тут надо уже логику менять. И кидать профиля с сервера на сервер, синхронизируя папки, это вообще не выход. С этим и появился такой вопрос.

Возможно ли взять файл профиля и разложить его на составляющие, положить в БД, а потом при надобности, взять этот большой кусок текста и сложить его в нужном порядке и сразу напрямую добавить эти куски по месту, не тратя время и ресурсы на создание файла профиля и использовать его?

Думаю что возможно, так как весь профиль по сути из текста и состоит, но лично у меня пока не хватает знаний и понимания, как это возможно реализовать.

Что скажут уважаемые ДОНы сообщества?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
113
Как пример:
C#:
byte[] cookiesBytes = instance.SaveCookie();
byte[] superCookiesBytes = instance.SaveSuperCookie();
byte[] localStorageBytes = instance.SaveLocalStorage();
byte[] pluginsBytes = instance.SavePlugins();
byte[] fontsBytes = instance.SaveFonts();

string cookie = System.Text.Encoding.UTF8.GetString(cookiesBytes);
string superCookie = System.Text.Encoding.UTF8.GetString(superCookiesBytes);
string localStorage = System.Text.Encoding.UTF8.GetString(localStorageBytes);
string plugins = System.Text.Encoding.UTF8.GetString(pluginsBytes);
string fonts = System.Text.Encoding.UTF8.GetString(fontsBytes);
Но думаю, лучше байты сразу в base64 переводить, так не будет риска при составлении sql-запроса.

Обратно через Encoding.UTF8.GetBytes и:
C#:
instance.SetCookie(cookiesBytes);
instance.SetSuperCookie(superCookiesBytes);
instance.LoadLocalStorage(localStorageBytes);
instance.LoadPlugins(pluginsBytes);
instance.LoadFonts(fontsBytes);
 

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 743
Благодарностей
1 137
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
6 095
Благодарностей
6 496
Баллы
113
Но думаю, лучше байты сразу в base64 переводить, так не будет риска при составлении sql-запроса.
да, об этом забыл упомянуть, конечно это все будет работать с sql в будущем иначе никак.

А можно попросить привести 2 примера снипов, первый который бы конвертил все в текст и далее в base 64
а второй который бы расконветивал )
ну чтоб на выходе нужное было в переменной
спасибо

Не проще все это сделать "из коробки"?
ну это было бы идеально, возможно в новых версиях появится
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 095
Благодарностей
6 496
Баллы
113

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
113
А можно попросить привести 2 примера снипов, первый который бы конвертил все в текст и далее в base 64
а второй который бы расконветивал )
ну чтоб на выходе нужное было в переменной
C#:
byte[] cookiesBytes = instance.SaveCookie();
byte[] superCookiesBytes = instance.SaveSuperCookie();
byte[] localStorageBytes = instance.SaveLocalStorage();
byte[] pluginsBytes = instance.SavePlugins();
byte[] fontsBytes = instance.SaveFonts();

string cookieBase64 = Convert.ToBase64String(cookiesBytes);
string superCookieBase64 = Convert.ToBase64String(superCookiesBytes);
string localStorageBase64 = Convert.ToBase64String(localStorageBytes);
string pluginsBase64 = Convert.ToBase64String(pluginsBytes);
string fontsBase64 = Convert.ToBase64String(fontsBytes);
C#:
byte[] cookiesBytes = Convert.FromBase64String(cookieBase64);
byte[] superCookiesBytes = Convert.FromBase64String(superCookieBase64);
byte[] localStorageBytes = Convert.FromBase64String(localStorageBase64);
byte[] pluginsBytes = Convert.FromBase64String(pluginsBase64);
byte[] fontsBytes = Convert.FromBase64String(fontsBase64);
 
  • Спасибо
Реакции: Nick

backoff

Client
Регистрация
20.04.2015
Сообщения
6 095
Благодарностей
6 496
Баллы
113
Как сделать вывод в переменную? А то "Выполнение кода C# Результат: ok" как-то не запишешь в базу :-)
Ну и из этого вопроса вытекает - как сделать чтоб и готовой переменной второй сниппет брать и конвертил в нужное?

для примера:

1. есть данные которые надо закодировать
2. мы получили переменную profile где получили закодированный кусок
например:
jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7jv4wWi2nSzpQvD7
3. сохранили в БД
4. берем сохраненный кусок из переменной profile и расконверчиваем

ps \ более наглядно пожалуйста
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
113
Как сделать вывод в переменную? А то "Выполнение кода C# Результат: ok" как-то не запишешь в базу :-)
Ну и из этого вопроса вытекает - как сделать чтоб и готовой переменной второй сниппет брать и конвертил в нужное?
C#:
project.Variables["cookiesBase64"].Value = Convert.ToBase64String(instance.SaveCookie());
C#:
byte[] cookiesBytes = Convert.FromBase64String(project.Variables["cookiesBase64"].Value)
instance.LoadCookie(cookiesBytes);
Остальное тут:
 
  • Спасибо
Реакции: Nick

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)