Файлове и Преконвертиране vs Ресурси и Оптимизация?!

В тази публикация на „Съвети от support- a“ ще намерите насоки и препоръки за оптимизация на вашите приложения, обединени в 2 точки. Роси от отдел Техническа поддръжка в нашата хостинг компания СуперХостинг.БГ споделя един интересен казус, за решаването на който е помогнала наскоро. Научете повече как да реализирате преконвертирене на файлове от един формат в друг, като съответно използвате най-оптимално сървърните ресурси на избраната хостинг услуга. Надяваме се информацията да помогне и за оптимизацията на ваши приложения. Разбира се, очакваме да споделите и допълните темата с още предложения от вашия опит… Какво друго решение ще препоръчате вие? 🙂

Клиент разполага в хостинг акаунта си при нас скрипт за конвертиране на файлове от PDF формат в JPG. Реализацията е с bash скрипт, чрез който става преконвертирането. Скриптът се стартира на няколко минути чрез cron задача.

Проблемът:

В скрипта не се прави проверка дали изображенията вече са преконвертирани. При малък обем от файлове, процесът минава бързо и видимо безпроблемно, но не и оптимално. При нарастване броя на файловете, преконвертирането, на практика, е непрекъснато и оказва сериозно влияние върху изразходваните сървърни ресурси (процесорно време – CPU). Това не зависи от избраното хостинг решение – споделен хостинг, виртуален сървър (VPS), нает сървър (dedicated server) или по-сложна хостинг реализация. При всеки случай са необходими оптимизации. Това ще спомогне за коректното и оптимално функциониране на процеса за конвертиране, без да има неблагоприятно влияние върху нормалната работа на други приложения.

Решението:

Съществуват много и различни начини за оптимизация. Практиката от комуникацията с клиентите показва, че най-удачните за тях решения са тези с максимално опростена реализация спрямо вече наличната функционалност. Това са решенията, които се реализират с възможно най-малко промени в начина на текущата работа на приложенията.

Предложените от наша страна решения:

1. Да се допише bash скрипта, като се включи проверка дали съществува вече определено изображение. Ако го има, то съответния PDF файл да не се преконвертира.

  • Потребителите, използващи сайта, по никакъв начин не променят начина на работа досега;
  • При качване на файл с име, което вече съществува, то няма да се преконвертира отново. Предложеният от нас скрипт може да се развие още като се добави и този случай. Това, обаче, изисква знанията и допълнителната работа на запознато лице, което да го реализира.

Bash скриптът – script.sh:

#!/bin/bash
ORIG_EXT="pdf"
CONV_EXT="jpg"
PDFDIR="/home/cpanelusername/path/to/folder/pdf"
IMGDIR="/home/cpanelusername/path/to/folder/img"
CONVERT="/usr/bin/convert"
CONVERT_OPTIONS=" -thumbnail x300 "
for i in `find $PDFDIR -type f -iname "*.$ORIG_EXT"`; do
FILE_TEMP=`basename $i`
FILE_NAME=${FILE_TEMP%.*}
if [ -d "$IMGDIR" ]; then
ls -las $IMGDIR | grep -E "$FILE_NAME---[0-9]{1,3}.$CONV_EXT"
> /dev/null if [ $? -ne 0 ]; then
$CONVERT $CONVERT_OPTIONS $PDFDIR/$FILE_TEMP
$IMGDIR/$FILE_NAME---%d.$CONV_EXT fi
else
echo "Error: The Image Directory $IMGDIR doesn't exist"
fi
done

* PDFDIR=“/home/cpanelusername/path/to/folder/pdf“ – директорията, в която се намират PDF файловете;
* IMGDIR=“/home/cpanelusername/path/to/folder/img“ – директорията, в която се намират JPG файловете;

2. Обработката на файлове да се извършва веднъж, например при качване на файла. Ние препоръчваме да се разположи upload форма, която при качването да преконвертира файловете в JPG формат.

  • Конвертирането се прави само веднъж при upload на файла. Това ще намали още повече изразходването на сървърни ресурси. Също, ще опрости начина на работа на приложението, без значение броя на файловете, които ще бъдат качени в акаунта;
  • Ще има промяна за потребителите, използващи и работещи ежедневно с приложението;

Възможна реализация е чрез извикване на същия bash скрипт, след upload на PDF файлoвете. Във формата се добавя следния ред:

exec("/home/cpanelusername/path/to/script.sh");

* /home/cpanelusername/path/to/script.sh – пълният път, който оказва къде е разположен bash скрипта;

За реализацията на upload формата има много насоки и примери и в интернет ространството. От съображения за сигурност на вашите приложения, ви препоръчваме да използвате рестрикции (максимален размер, тип) за качваните файлове и защита на upload формата с парола.

Споделете като коментар под тази публикация случаи и от вашата практика, в които сте реализирали преконвертиране на файлове? Какво решение сте използвали? Ще се радваме да допълните темата с още полезни съвети, въпроси или интересна информация! 🙂

СуперХостинг.БГ
СуперХостинг.БГ
СуперХостинг.БГ е СуперЕкипът! Ежедневно всеки дава най-доброто от себе си, за да можете вие, клиентите на СуперХостинг.БГ, да сте номер едно. СуперСилата на СуперЕкипа е, че винаги е готов да ви даде точната информация, тази от която се нуждаете и за която питате.
0 0 votes
.
Абониране
Уведоми ме при
guest

3 Коментара
Inline Feedbacks
View all comments
3 стъпки за органично бизнес онлайн присъствие

3 стъпки за органично бизнес онлайн присъствие [Аудио]

2
Под „органично присъствие“ имаме предвид всички начини, чрез които потребителите могат да разберат за Вашия бизнес, без да плащате за позициониране (реклама).
5 причини да изберете домейн .EU ( а защо не и .ЕЮ )

5 причини да изберете домейн .EU (а защо не и .ЕЮ )

0
Домейнът .EU е сравнително нов за пазара на домейни. От края 2016 година е един от най-популярните Top Level домейни.
Сайтът не е само за хора с бизнес и търговия.

6 идеи за сайт, различен от онлайн магазин

8
Ако първата ви асоциация със сайт е онлайн магазин… замислете се пак. Има много други видове сайтове, които не търгуват онлайн, но си струва да се посещават.