Перейти к содержимому


Фото
* * * * * 1 голосов

token у рисунков - идея по переделке


  • Чтобы отвечать, сперва войдите на форум
55 ответов в теме

#21 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 13:42

А почему бы не сделать проверку в функции ресайза на существование ресайза?
И если он УЖЕ ЕСТЬ - запрашивать его без токена?
А если нет - тогда вперед и с токеном?

Проверка на токен вообще не нужна, вы все не в том направлении мыслите.

#22 osben

osben
  • Фрилансер
  • 793 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 16.11.2016 - 14:12

Проверка на токен вообще не нужна, вы все не в том направлении мыслите.

Не совсем согласен.
Без нее было бы проще, но с ней безопаснее. 

 



#23 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 14:59

Не совсем согласен.
Без нее было бы проще, но с ней безопаснее.

Если переделать немного функционал ресайза, то в целях безопасности токен становится не нужным.

#24 osben

osben
  • Фрилансер
  • 793 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 16.11.2016 - 15:00

Если переделать немного функционал ресайза, то в целях безопасности токен становится не нужным.


Подскажи тогда, с радостью выслушаю твои идеи 



#25 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 15:03

Подскажи тогда, с радостью выслушаю твои идеи

Несколько сообщений назад я уже отвечал на подобный вопрос Кросу.
Будет свободное время постараюсь выложить мануал, конечно же если появится спрос, иначе пустая трата времени.

#26 osben

osben
  • Фрилансер
  • 793 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 16.11.2016 - 15:08

Несколько сообщений назад я уже отвечал на подобный вопрос Кросу.
Будет свободное время постараюсь выложить мануал, конечно же если появится спрос, иначе пустая трата времени.

там кроме что ты что то где то сделал и все ок, не какой конкретики. 

Напиши в двух словах, можно без кода же. Просто интересна сама идея. 



#27 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 15:20

там кроме что ты что то где то сделал и все ок, не какой конкретики. 

Напиши в двух словах, можно без кода же. Просто интересна сама идея.

Для чего нужен токен? Для того чтобы через гет не нарезали кучу не нужных картинок, верно?
Так вот если убрать обрезку картинок через гет, и использовать ее через функцию |resize то токен становится не нужным потому как через гет у нас уже не будет работать ресайз, а только через функцию, параметры которая передает в обработчик api/Image.php.
Расширив функцию |resize можно будет применить обрезку к любому объекту (фото бренда, категории, слайдер, прочее), а так же можно будет разделить все по разным папкам не исключая папки для нарезок.
Собственно я это давно уже реализовал, подходил к этому вопросу долго но уверенно.
Надеюсь мое толкование чем-то поможет.

#28 yr4ik

yr4ik
  • Фрилансер
  • 844 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 16.11.2016 - 16:05

Для чего нужен токен? Для того чтобы через гет не нарезали кучу не нужных картинок, верно?
Так вот если убрать обрезку картинок через гет, и использовать ее через функцию |resize то токен становится не нужным потому как через гет у нас уже не будет работать ресайз, а только через функцию, параметры которая передает в обработчик api/Image.php.
Расширив функцию |resize можно будет применить обрезку к любому объекту (фото бренда, категории, слайдер, прочее), а так же можно будет разделить все по разным папкам не исключая папки для нарезок.
Собственно я это давно уже реализовал, подходил к этому вопросу долго но уверенно.
Надеюсь мое толкование чем-то поможет.

 
Можно и так. Но тогда для сайтов с большим количеством товаров очистив папку с миниатюрами и вызвав yandex php можно получить неприятности... Ведь при вызове данного скрипта (+ ему подобных) в 1 вызов мы начнем ресайзить целую тучу картинок. И тут без обрыва по ограничениям - не обойдется. В результате чего могут повреждаться несколько фото.   
 
............................................................
 
Накидал небольшой пример в котором убирается токен и добавляются функции для ресайза других изображений (категории, бренды и тд). Разрешенные размеры хранятся в кеш-файле с миниатюрами. Что позволяет при очистке миниатюр убрать лишние разрешенные параметры с кеш-файла
 

Для того что бы добавить ресайз на другой тип изображений - достаточно добавить строку в config.php в которой будет прописана папка с оригинальными изображениями и имя параметра будет оканчиваться на '_images_dir'

Пример: 

comments_images_dir = files/comments/;

Вызов в шаблоне:
{$image|resize:100:100:true:'comments'}

 

PS: Корс - это лишь для примера. Бестолковые сообщения просьба не писать

Прикрепленные файлы:

  • Прикрепленный файл  resize.zip   3,59К   16 раз скачано


#29 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 16:11

Вызов в шаблоне:
{$image|resize:100:100:true:'comments'}

Именно так я и сделал у себя в проекте)
Проверял я нагрузку при 400 товаров в каждом из которых сразу ресайзились по 2 картинки (куртка спереди и сзади), ресайз произошел буквально в несколько секунд, конечно же это на опенсервере, на хостинге не тестировал.

#30 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 16:16

Посмотрел я на реализацию, ты делаешь все такую же ошибку как и большинство новичков кодинга, хотя сам таковым уже давно не являешься.
У тебя дубли кода, одних и тех же функций, не проще ли передавать параметр с названием папки, если не передана то используется скажем products а если передана но не существует такая папка то создадим ее?
Также нигде не увидел проверки на существование текущего обрезанного изображения, выходит ресайз работает постоянно при обращении к картинки, она с каждым разом заново ресайзится.

#31 yr4ik

yr4ik
  • Фрилансер
  • 844 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 16.11.2016 - 17:17

Посмотрел я на реализацию, ты делаешь все такую же ошибку как и большинство новичков кодинга, хотя сам таковым уже давно не являешься.
У тебя дубли кода, одних и тех же функций, не проще ли передавать параметр с названием папки, если не передана то используется скажем products а если передана но не существует такая папка то создадим ее?
Также нигде не увидел проверки на существование текущего обрезанного изображения, выходит ресайз работает постоянно при обращении к картинки, она с каждым разом заново ресайзится.

 

По чистоте кода - я этим не заморачивался.  

Я все это набросал исключительно для примера. 

Даже не тестировал на работоспособность.  

 

А зачем проверка на существование изображения?

Это выполняет htaccess. Если нет файла - выполнить resize.php, а если есть то просто отдается картинка с сервера



#32 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.11.2016 - 18:06

Именно так я и сделал у себя в проекте)
Проверял я нагрузку при 400 товаров в каждом из которых сразу ресайзились по 2 картинки (куртка спереди и сзади), ресайз произошел буквально в несколько секунд, конечно же это на опенсервере, на хостинге не тестировал.

 
Все это хорошо, но Пикусов-то как раз для того и создал текущую схему, чтобы не нагружать один скрипт, а каждый отдельный ресайз картинки выполнялся отдельным скриптом. В этом случае отказ одного или нескольких резайзов не приведет к краху всей вызываемой страницы...
Что-то я сомневаюсь, что средний хостинг выдержит ресайз одним скриптом 400 товаров. Особенно если в товаре будет открытие увеличенной картинки через fancybox. И многое зависит от конкретных размеров - делаете Вы ресайз 100х100 или 800х800...

 

...для сайтов с большим количеством товаров очистив папку с миниатюрами и вызвав yandex php можно получить неприятности... Ведь при вызове данного скрипта (+ ему подобных) в 1 вызов мы начнем ресайзить целую тучу картинок. И тут без обрыва по ограничениям - не обойдется. В результате чего могут повреждаться несколько фото.

 

После очистки папки с миниатюрами при вызове yandex.php, когда бывает и по нескольку тысяч товаров с несколькими картинками, особенно если там в ресайзе вдруг поставили особые размеры, ГАРАНТИРОВАННО  скрипт не отработает как надо и поисковик получит полное безобразие со всеми вытекающими последствиями.

 

Так что я бы на месте автора протестировал как следует, а не кое-как локально...



#33 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 22:09

Перечитав весь этот бред так и не понял с чего вы взяли что будет нагрузка при большом кол-ве товаров?
Моя реализация работает точно так же как и стоковый ресайз только без токена, с такой же скоростью нарезаются картинки товаров ну может немного быстрее.
Где тут нагрузка? Тем более не будет же сразу одновременно 2-5к товаров открыто на однйой странице вот это да я понимаю будут тормоза.

#34 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.11.2016 - 22:13

Сделаем иначе, я предлагаю протестировать свою реализацию на нагрузку, вот только не знаю как проверить эту самую нагрузку (буду рад услышать дельные советы).
+ Кто поделится дампом товаров скажем на 2к, главное название и фото (много фото).
Спасибо.


Изменено: Sheeft, 17.11.2016 - 00:35
Перенесено в соответствующую тему )


#35 yr4ik

yr4ik
  • Фрилансер
  • 844 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 17.11.2016 - 00:36

Возьмем пример:
10000 товаров. Папки с миниатюрами пустые.
будем вызывать yandex.php
 
1) Вариант с ресайзом в ф-и |resize
При выполнении yandex.php там есть строка: 

print "<picture>".$simpla->design->resize_modifier($p->image, 200, 200)."</picture>";

Которая соответственно начнет делать нарезку миниатюр для всех товаров что будут отображаться в yandex.php
Что скорее всего вызовет  Maximum execution time, Allowed memory size и тд
 
2) Через гет. в ф-и |resize формируется лишь имя для get
Через данный способ, яндекс, получит необходимый ему xml быстро и без ошибок по лимитам. 
А сам ресайз будет выполнятся лишь по необходимости. То есть когда будет производится обращение по сгенерированной в xml ссылке. Что соответственно может выполняться часто (пока не нарежутся миниатюры) но быстро (что не вызовет долгого выполнения и соответствующих ошибок)



#36 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 17.11.2016 - 02:42

Один треп и никаких реальных цифр и доказательств, то что вы здесь пишите можно назвать битвой экстрасенсов.
Никакой конкретики.

#37 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 17.11.2016 - 08:51

Один треп и никаких реальных цифр и доказательств, то что вы здесь пишите можно назвать битвой экстрасенсов.
Никакой конкретики.

 

В посте  #35  yr4ik расписал просто и доходчиво. Я весьма  удивлен, что Noxter не понял...

 

Если надо конкретнее, но надо создавать конкретное демо. Сделать такое под силу только Noxter-у, так как остальные не знают, что он наваял, и как в точности у него работает...

 

А уж создать быстро тестовую базу на много товаров и картинок для спеца-программиста не должно составлять трудностей...



#38 a13x

a13x
  • Забаненый
  • 213 сообщений
  • Дизайн, Программирование, Верстка, SEO, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 03.12.2017 - 18:22

Идея конечно хорошая, но хоть кто нибудь сможет объяснить мне, зачем картинкам (фоткам) токены?

- сложно парсить? -нет.

- экономит ресурсы? -нет, наверно наоборот.

- может кэшируется лучше или что-то ещё? - ...

Минусы зато сразу бросаются в глаза: при индексации яндексом, он такие фотки просто не сможет проиндексировать правильно, а правильно это так, чтобы они при поиске потом выдавались в выдаче т.к. ваш токен вероятнее всего будет уже другим, хотя бы после сброса кэша (удаление фоток) когда это понадобится. Так в чём же плюс? :huh:



#39 Пастухов

Пастухов
  • Пользователь
  • 119 сообщений
  • Программирование
  • Откуда:Минск

Опубликовано 03.12.2017 - 19:48

Токен - защитный ключ к картинке. Если его не применять, то недоброжелатель, увидев на сайте картинку tov.600x800.jpg, сможет вызвать адреса files/products/tov.600x801.jpg,files/products/tov.600x802.jpg и подобные.  Каждый такой вызов вызовет отработку ресайза и запись нового файла, что может привести к бесполезному расходу дискового пространства, вплоть до исчерпания лимитов...

Кроме того, это также защита от формирования картинки без водяного знака...



#40 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 532 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 03.12.2017 - 21:44

У нас Корс теперь пастухом стал, ахах))




0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых