Загрузки картинок из интернет по защищённому соединению (SSL)

1. uncle_Vasya 14.02.17 19:32 Сейчас в теме
Добрый вечер!
У нас внешние программисты в список номенклатуры вывели картинки непосредственно с нашего сайта. По 6 картинок максимум на товар.
	Артикул = Номенклатура.Артикул;
	
	Соединение 	= Новый HTTPСоединение("RabotodatelDyadiVasi.ru");
	
	Для Нум = 1 По 6 Цикл
		
		СуффиксФайла = ?(Нум = 1, "", "-" + Строка(Нум - 1));
		
		Запрос = Новый HTTPЗапрос("upload/photo/" + Артикул + "/" + Артикул + "" + СуффиксФайла + ".jpg");
		Ответ  = Соединение.Получить(Запрос);
		
		Если Не Ответ.КодСостояния = 200 Тогда
			Запрос = Новый HTTPЗапрос("upload/photo/" + Артикул + "/" + Артикул + "" + СуффиксФайла + ".JPG");
			Ответ  = Соединение.Получить(Запрос);
		КонецЕсли;
		
		Если Не Ответ.КодСостояния = 200 Тогда
			
			Для мНум = Нум По 6 Цикл
				
				Форма["Картинка" + Строка(мНум)] = "";	
				
			КонецЦикла;
			Прервать;
			                                                                                 
		КонецЕсли;
		
		ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные();
		
		Форма["Картинка" + Строка(Нум)] = ПоместитьВоВременноеХранилище(Новый Картинка(ДвоичныеДанныеКартинки));
		
		Если Нум = 1 Тогда
			
			Форма.АдресКартинки = Форма["Картинка" + Строка(Нум)];
			
		КонецЕсли;
		
	КонецЦикла;
Показать

Обратите внимание на проверку кода состояния ответа.
Если перепутать тип соединения, например, в конструкторе HTTPСоединения, как сделали эти программисты - а у нас с сайтом нашей компании, например, оно в любом случае устанавливается защищённое, - то по идее, любой вообще запрос будет давать ответ со статусом 301. И такой, который в точности соответствует имеющемуся ресурсу, и такой, который вообше ведёт в никуда.
При этом на практике, часть картинок через незащищённое соединение, как ни удивительно, подгружается-таки.
Но на многие товары мы не видим изображений.
Так что я исправил код, чтобы соединение было в любом случае защищённое:
Соединение = Новый HTTPСоединение(Сайт,,,,,,Новый ЗащищенноеСоединениеOpenSSL())

И не устанавливалось заново каждый раз, а бралось из сохраняемого значения (в глобальной переменной - не знаю, стоит ли фиксировать объект HTTPСоединение: если подвиснет такой объект на час - не примет ли сайт это за хакерскую атаку? везде же сейчас проактивные защиты...)
все фотки подтягиваются.
Но это ТАК долго! Список товаров ТАК стал тормозить!!

вопрос: как бы это дело разогнать?

- Очевидный ответ, наверное, - проверять сначала незащищённым соединением, упадёт ли хоть одна фотка, а потом - незащищённым - на первый же провал выключать махину (потому что ведь даже для фот, которых нет на сайте, - приходится несколько секунд ждать, когда интернет-запрос в этом убедится)
- Как вариант: ограничить список используемых сертификатов удоцентров в конструкторе SSL-параметра. Может быть, от этого каждый запрос станет срабатывать быстрее?
- Сисадмин предложил подгружать не фотки целиком, а thumbnail'ы. Завтра узнаем у разработчиков сайта, куда они сунули скрипт, который генерирует маломерки. Раньше такой потребности не возникало, т.к. всё работало и так с приемлемой скоростью.
- Ещё говорят, можно вывести фотки на сайте в CDN на наши мощности.

Какие ещё варианты?

Перейти к подгрузке картинок из базы/из томов на диске - пока не рассматриваем: 100%-достоверная синхронизация с сайтом очень важна. Не должно быть такого, что мы видим какую-то картинку в 1С и не знаем, что на сайт она так и не попала!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
4. olegmedvedev 65 20.02.17 10:27 Сейчас в теме
А почему нельзя настроить локальную папку с картинками, которая бы синхронизировалась с картинками сайта? А 1С подтягивала бы картинки уже с локальной папки.
maxst22; uncle_Vasya; +2 Ответить
3. Xershi 1484 20.02.17 10:21 Сейчас в теме +0.6 $m
(1) самое главное это сделать замер! Он вам покажет, где идут тормоза. Там уже можно будет понять в чем проблема и оптимизировать.
Слабое звено это загрузка.
Хотите чтобы было быстро и без тормозов, то только локально!
Если тормозит сайт, вариант поднятия фтп может ускорит работу?
uncle_Vasya; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. onetone 17.02.17 01:09 Сейчас в теме
(1) А Вы смотрели замер производительности?
Может скорость теряется не в HTTPСоединение?
5. uncle_Vasya 20.02.17 11:39 Сейчас в теме
(2) Спасибо за внимание!
Нет, именно там.
Вопрос закрыт: решили-таки делать CDN.
3. Xershi 1484 20.02.17 10:21 Сейчас в теме +0.6 $m
(1) самое главное это сделать замер! Он вам покажет, где идут тормоза. Там уже можно будет понять в чем проблема и оптимизировать.
Слабое звено это загрузка.
Хотите чтобы было быстро и без тормозов, то только локально!
Если тормозит сайт, вариант поднятия фтп может ускорит работу?
uncle_Vasya; +1 Ответить
4. olegmedvedev 65 20.02.17 10:27 Сейчас в теме
А почему нельзя настроить локальную папку с картинками, которая бы синхронизировалась с картинками сайта? А 1С подтягивала бы картинки уже с локальной папки.
maxst22; uncle_Vasya; +2 Ответить
6. uncle_Vasya 20.02.17 11:42 Сейчас в теме +0.6 $m
(4) мы так и сделаем
я полагал, что, как написал в ОП, 100% достоверность важна.
Но оказалось, что если фото есть в 1Се, то и с сайта оно никуда не денется.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот