Beget файловый менеджер. Как пользоваться файловым менеджером

Для получения доступа нажмите на кнопку "Get Demo Account", доступ будет отправлен на почту.

Чем он лучше остальных?

Двухпанельный графический интерфейс

Интерфейс файлового менеджера сделан в привычном пользователю виде: две области для удобной работы с файлами.
В каждой из них Вы можете открыть файлы на сервере, удаленном FTP или на своем компьютере.

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

Функция Drag&Drop

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

Работа c удалённым FTP

Нажмите на кнопку "Удалённый FTP " для того, чтобы подключиться к удаленному серверу из файлового менеджера. Вы можете сохранить подключения и отредактировать их при необходимости в будущем.


Открыть внешний FTP можно как в левой, так и правой панели и даже сделать это одновременно для работы через файловый менеджер с двумя абсолютно сторонними FTP. Для того, чтобы открыть FTP Вашего хостинг-аккаунта, достаточно нажать кнопку "Домашний FTP ".

Вкладочный интерфейс

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

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

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

Основные функции для работы с файлами

Файловый менеджер позволит выполнить все основные функции для работы с файлами и директориями, такие как: копирование, перемещение, переименование, изменение атрибутов и т.д. При этом все эти действия Вы можете выполнить большим кол-вом способов.

1. Копирование
Для того, чтобы скопировать группу файлов Вы можете выделить их мышкой, при этом зажав кнопку Ctrl . Затем просто перетащите их в нужное место. Как только Вы отпустите кнопку мыши над выбранным местом файловый менеджер выведет диалоговое окно с уточнением того хотите ли Вы скопировать файлы или нет, если файлы с такими именами существуют, то выведется предложение о перезаписи файлов.

Вы также можете скопировать файлы или папки, выбрав их, нажав правую кнопку для вызова контекстного меню. После чего необходимо нажать кнопку "Копировать".

Ещё несколько способов осуществить копирование - это воспользоваться кнопкой в меню "Файл " или кнопкой внизу Файлового менеджера.

Существует также комбинация горячих клавиш для быстрого доступа к функции копирования - Ctrl + 5 .

2. Перемещение
Для перемещения Вы можете воспользоваться всеми теме же способами, что и для копирования, за исключением "перетаскивания ". Комбинация горячих клавиш для перемещения Shift + 5 .

3. Переименование
Для переименование файла или директории Вы также можете воспользоваться контекстным меню, пунктом меню в выпадающем меню "Файл " или комбинацией горячих клавиш - Ctrl + 6 .
В отличие от копирования и перемещения данная функция не является групповой и может быть применена только к одному элементу.

После нажатия на кнопку "Переименовать " Вы увидите диалоговое окно для ввода изменения имени элемента. Введите новое имя и нажмите "ОК ".

4. Изменение атрибутов

Для изменения атрибутов файла или директории Вы можете воспользоваться контекстным меню или пунктом меню в выпадающем меню "Файл ".

Задать права на файлы Вы можете как в числовом формате, так и выставив права при помощи соответствующих галочек для пользователя, группы, в которую он входит, и для всех.

Если кратко, то права можно выставить отдельно для user - непосредственно владелец файла, для группы (group ), для всех (All ).

Получить цифровое обозначение прав можно сложением, где:

1 - права на выполнение;
2 - права на запись;
4 - права на чтение.

Например, мы хотим установить права на чтение и запись: 6 = 4(чтение) + 2(запись).

Всего возможно 8 вариантов:

7 = read, write & execute (чтение, запись, выполнение);
6 = read & write (чтение и запись);
5 = read & execute (чтение и выполнение);
4 = read (чтение);
3 = write & execute (запись и выполнение);
2 = write (запись);
1 = execute (выполнение);
0 = нет прав.

На наших серверах файлы исполняются из под пользователя, поэтому две последних цифры в правах должны быть равны 0.
Например, если Вам надо выставить права на всё для файла необходимо установить значение: 700.

5. Удаление
Удалить файлы можно воспользовавшись контекстным меню, кнопкой в выпадающем меню "Файл ", с помощью комбинации горячих клавиш - Ctrl + 8 или кнопкой "Del" .
Перед удалением файлов Файловый менеджер выведет диалоговое окно с уточнением того, действительно ли Вы хотите удалить выбранные файлы.

Работа с архивами

Файловый менеджер позволяет работать с архивами. Вы можете создать или распаковать архив, а также сразу скачать нужные файлы/директории архивом .

1. Создание архива
Для того, чтобы создать архив из выбранных файлов или папок, выделите нужные файлы и/или папки и нажмите кнопку "Создать архив " на панели быстрого доступа. В появившемся диалоговом окне Вы можете изменить имя архива и тип архива.

2. Распаковка архива
Для того, чтобы распаковать архив, нажмите кнопку "Распаковать архив " на панели быстрого доступа. В появившемся модальном окне выберите путь, куда Вы хотите распаковать архив, и нажмите "Распаковать архив ".

3. Скачать архивом

Вы можете скачать файлы и папки архивом одним кликом, нажав иконку "Скачать архивом " на панели быстрого доступа. Вы также можете воспользоваться выпадающим меню: вкладка "Файл ", далее "Скачать " и выбрать тип архива, в котором Вы хотите скачать выбранные файлы/папки.

Множественная загрузка

Наиболее удобный способ работать и загружать файлы со своего компьютера на сервер - это открыть в одной из областей Вашу локальную файловую систему, об этом описано выше. Однако, если по каким-то причинам у Вас нет возможности использовать Java , то Вы можете загрузить файлы, нажав на иконку "Загрузить файлы ".

Перед Вами появится окно для загрузки файлов на сервер. Выберите файлы с Вашего компьютера и нажмите кнопку "Загрузить". Максимальный размер одного файла не должен превышать 1.5 Гб. Файловый менеджер начнет последовательно загружать выбранные файлы, процесс загрузки каждого из файлов на сервер будет отображаться в браузере в процентах.

Текстовый редактор

Файловый менеджер содержит удобный текстовый редактор для работы с кодом Ваших сайтов.

Нажав кнопку "Настройки " в правом верхнем углу редактора, Вы можете настроить внешний вид текстового редактора по Вашему вкусу, изменить размер шрифта и другие параметры.

Текстовый редактор обладает функцией подсветки синтаксиса и умеет распознавать, какой файл Вы открыли, будь это php-скрипт , bash-скрипт или другой язык программирования. Вы также можете выбрать самостоятельно подсветку кода, воспользовавшись выпадающим меню в текстовом редакторе.

Текстовый редактор позволит изменить кодировку файла и пересохранить файл в другой кодировке.

Просмотр графических файлов

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

Поиск по файлам и папкам

Если Вам нужно найти файл или папку, Вы можете воспользоваться поиском в файловом менеджере. Расширенный режим позволяет искать только файлы или только папки, а также искать по размеру файла или папки.

Управление доступом

С помощью файлового менеджера Вы можете выставить пароль на папку и заблокировать доступ к папке с указанных IP-адресов. Для того, чтобы установить пароль на папку, выберите её, в верхнем выпадающем меню выберите вкладку "Инструменты ", а затем нажмите "Установить пароль на текущую директорию ". В появившемся диалоговом окне введите пароль на директорию и нажмите кнопку "Установить пароль ".

Аналогично Вы можете закрыть доступ к папке с отдельных IP. В выпадающем меню выберите вкладку "Инструменты ", а затем "Установить блокировку по IP-адресу ". В появившемся диалоговом окне введите список IP в формате: xxx.xxx.xxx.xxx, с которых Вы хотите открыть доступ и с которых хотите запретить.

Функции для работы с Домашним FTP

Файловый менеджер имеет ряд функций, которые доступны только для Домашнего FTP .

1. Список сайтов
Вы можете легко переходить между сайтами Вашего хостинг-аккаунта, воспользовавшись кнопкой на панели быстрого доступа или выбрать сайт в выпадающем меню, на вкладке "Переход ". По двойному щелчку левой кнопки мыши на выбранный сайт, Вы будете перенаправлены в корневую директорию сайта.

2. Размер папок
На Домашнем FTP Вы можете легко получить размер Ваших директорий, нажав на кнопку "Анализ размера " на панели быстрого доступа.

Также Вы всегда можете видеть общий размер занятого дискового пространства на сервере внизу файлового менеджера.

Работа c бэкапами

Также прямо в файловом менеджере Вы можете просмотреть список доступных резервных копий, созданных для вашего аккаунта автоматически нашей системой резервного копирования (по датам). Кликнув по подходящей резервной копии, Вы сможете просмотреть ее содержимое и, при необходимости, скопировать из нее нужные файлы.

Горячие клавиши

Как и большинство десктопных FTP-клиентов наш Файловый менеджер содержит ряд горячих клавиш, что ускоряет работу с самими распространенными действиями.

Ниже приведен список горячих клавиш:

Ctrl + 3 - Просмотр;
Ctrl + 4 - Правка;
Ctrl + 5 - Копирование;
Shift + 5 - Перемещение;
Ctrl + 6 - Переименование;
Ctrl + 7 - Создание новой папки;
Ctrl + 8 или Del - Удаление.

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

Сегодня поговорим о хостингах и почему Beget это лучший выбор.

Создание сайта – это достаточно сложный и кропотливый процесс. Абсолютно не имеет значения, для чего вам сайт, будь то интернет-магазин, блоговый сайт, социальный портал, в любом случае вам нужен качественный и надежный хостинг. Одной из самых популярных хостинговых компаний за последние несколько лет, стала Beget.

На самом деле вопрос выбора хостинга когда-то встает перед каждым вебмастером, а так как конкуренция тут просто дичайшая, выбор оказывается не так то прост. Меня всегда удивляло то, насколько все хостинг провайдеры похожи друг на друга(ну никакой индивидуальности). И вот тут как раз мне попался Beget. Если забежать чуть-чуть вперед, то он яркий, не такой как все, супер удобный, очень функциональный, относительно дешевый, а самое главное современный и быстро набирающий популярность хостинг. Итак, обо все по порядку:

Хостинг сайтов

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

Серверы – мощные компьютеры, которые работают абсолютно круглосуточно, что позволяет вашему сайту оставаться рабочим и видимым в интернете.

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

Хостинг Beget

Beget считается лучшей платной хостинговой компанией. Главным достоинством Beget стали доступные цены и удобный интерфейс управления сайтом.

Вы сможете подобрать себе пакет для любого вида интернет-ресурса. Если вы не можете определиться, какой пакет вам нужен, достаточно просто обратиться к администрации, где вам ответят на все ваши вопросы.

Также хостингс каждым днем становится все проще и удобней, то есть проблем с управлением сайта на хостинге от данного оператора не будет вообще никаких. Beget – это отличный вариант для любого человека, который хотел бы открыть собственный интернет-бизнес.

Регистрация на Beget

Вводим свои дынные:

  • номер телефона
  • email

Нажимаем кнопку зарегистрировать аккаунт и на этом все. Дальше необходимо оплатить вновь созданный аккаунт.

Если вам нужен сайт, который не будет иметь сильноразветвленной структуры, тогда вы можете выбрать самый дешевый хостинговый пакет. Если же вы хотите размещать на своем портале значительно больше информации, чем позволяет вам стандартный пакет, тогда заказывайте VIP-хостинг. Вы получите приоритетную поддержку и 35 Гб на свои файлы. Это очень удобная услуга для тех, кто хочет создать интернет-маркет. Естественно, что заказывать VIP-хостинг стоит куда дороже.

Немаловажно и то, что благодаря Beget вы сможете арендовать полностью сервера со всей технической поддержкой и круглосуточным мониторингом. Также хостинговый оператор предоставляет невероятно дешевые домены для.РФ и.RU зон.

Оплата хостинга Beget

С оплатой тоже никаких проблем (хотя с этим сейчас ни у кого проблем нет). Выбираем любой удобный нам способ и оплачиваем.

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

Есть возможность использования Обещанного платежа

Панель управления Бегет хостинг

Вообще в целом разобраться можно в любом интерфейсе. Но после того, как я пользовавшись cPanel, ISP Manager и другими ПУ пришел сюда, то был приятно впечатлен тем, что бегет не пошли по заезженному пути а создали свою панель управления. И им это вполне удалось. Панель проста в понимании, имеет приятный дизайн, удобную компоновку элементов. Отдельно каждый элемент рассматривать не буду. тут все как у всех: базы данных, доступ по ftp, парковка доменов и т.д.

Бесплатный месяц тестирования на Beget

Вы хотели бы посмотреть, как ваш сайт будет работать на настоящем хосте, но платить за попытку не хотите? Тогда услуга "бесплатный хостинг" - то, что вам надо. Достаточно лишь зарегистрироваться, и вы можете приступать к работе.

Это очень выгодная услуга для тестовых интернет-порталов. Многие веб-мастера пользуются этой опцией для запуска своих проектов. Конечно же, такой хостинг не обслуживается так, как платный аналог.

Техподдержка хостинга

Судя по отзывам в интернете поддержка у них очень квалифицированная и она не ограничивается стандартными отмазками типа "перезагрузитесь", а реально помогает искать какие-то проблемы. Но мой отзыв будет самым лучшим. За год работы с данным хостингом мне НИ РАЗУ не потребовалась их помощь, и это на мой взгляд лучший показатель отличной работы Beget.

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

Если же вы только хотите открыть собственный интернет-портал, тогда все вопросы вы можете оговорить непосредственно по телефону или же посредством электронной почты, ICQ, Skype. На сайте компании вы можете не только связаться с консультантами, но и сразу же заказать хостинг. Все очень быстро и просто.

Преимущества Beget

Beget отличается от всех своих конкурентов, тем, что старается ни на секунду не отставать от времени и с каждым днем модернизируется и становится удобней.

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

Файловый менеджер на данном хостинге - это тот камень преткновения из-за которого я и полюбил beget. Он настолько удобен, что я полностью забыл про использования FileZilla и прочих подобных программ. Он также имеет свой индивидуальный интуитивно понятный дизайн. Удобная закачка файлов прямо из менеджера, редактирование любых типов файлов.

Скорость копирования файлов на локальный или удаленный серверы - 1 Гб/с, что невероятно удобно. Нужно обязательно сказать про панель управления, которая сделана максимально эргономично, чтобы не было никаких затруднений в организации сайта.

Панель управления снабжена калькулятором услуг, который позволит вам следить за расходом ваших денежных средств. Обо всех остальных услугах, которые предоставляет хостинговый оператор, вы можете подробней узнать в разделах «Услуги» и «О сайте».

Акции и выгодные предложения

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

Любой, кто хотя бы один раз имел дело с Beget, больше никогда не будет искать нового хостингового оператора. Компания гарантирует:

  • надежную работу;
  • качественное обслуживание;
  • выгодные предложения;
  • приятные цены.

Смело связывайтесь с консультантами Beget и спрашивайте об акциях, они с удовольствием ответят на все ваши вопросы.

Краткий вывод

В выводе я хочу выделить все плюсы данного хостинга:

  • Очень простой и надежный хостинг.
  • удобный файловый менеджер
  • большое количество способов оплаты
  • современный интерфейс
  • бесплатный ssl сертификат для доменов
  • хороший бэкап сайтов
  • Выгодные цены вкупе со скидками и акциями, которые позволяют экономить.
  • Любезная администрация, которая ответит на любой ваш вопрос.
  • Круглосуточное обслуживание ваших сайтов и аккаунтов для их стабильной работоспособности.
  • Мощные серверы, которые гарантируют постоянную работоспособность ресурса.
  • Простой дизайн и метод управления.
  • Возможность запуска тестового проекта благодаря услуге бесплатного хостинга.
  • Постоянные системы скидок и выгодных предложений.

Встречать более удобный хостинг для работы мне пока не приводилось и именно по этому я его всем советую. А еще надеюсь что команда beget не зазнеается и будет и дальше радовать своих пользователей отличной работой. Уж очень мне не хочется подыскивать новый. Вообщем пробуйте, тестируйте и возвращайтесь к нам на сайт, чтобы оставить свой комментарий по поводу его работы.

Вы никогда не останетесь в стороне от самых свежих последних новостей Beget. Любое обновление, любая акция или новая услуга будет тут же размещена на официальном сайте компании в разделе «Новости». Итак, работать с Beget - это:

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


  • Определение кодировки

    Задача:

    Проблемы:

    Решение:

    # Для определения кодировки используем порт uchardet от Mozilla - python chardet # https://github.com/chardet/chardet # # Используем dev версию, там все самое свежее. # Данный код постоянно улучшается благодаря обратной связи с пользователями # чем больше - тем точнее определяется кодировка, но медленнее. 50000 - выбрано опытным путем self.charset_detect_buffer = 50000 # Берем часть файла part_content = content + content[-self.charset_detect_buffer:] chardet_result = chardet.detect(part_content) detected = chardet_result["encoding"] confidence = chardet_result["confidence"] # костыль для тех, кто использует кривые редакторы в windows # из-за этого в файлах utf-8 имеем cp-1251 из-за чего библиотека ведет себя непредсказуемо при детектировании re_utf8 = re.compile(".*charset\s*=\s*utf\-8.*", re.UNICODE | re.IGNORECASE | re.MULTILINE) html_ext = ["htm", "html", "phtml", "php", "inc", "tpl", "xml"] # Все вероятности выбраны опытным путем, на основе набора файлов для тестирования if confidence > 0.75 and detected != "windows-1251" and detected != FM.DEFAULT_ENCODING: if detected == "ISO-8859-7": detected = "windows-1251" if detected == "ISO-8859-2": detected = "utf-8" if detected == "ascii": detected = "utf-8" if detected == "MacCyrillic": detected = "windows-1251" # если все же ошиблись - костыль на указанный в файле charset if detected != FM.DEFAULT_ENCODING and file_ext in html_ext: result_of_search = re_utf8.search(part_content) self.logger.debug(result_of_search) if result_of_search is not None: self.logger.debug("matched utf-8 charset") detected = FM.DEFAULT_ENCODING else: self.logger.debug("not matched utf-8 charset") elif confidence >

  • Задача:
    *.com" "$* = 42;" и т.д.

    Проблемы:

    Решение:

    Пример реализации воркера


  • Задача:

    Проблемы:

    Решение:

    • Добавить поддержку SSH/SFTP
    • Добавить поддержку WebDav
    • Добавить терминал

    .

  • Блог компании Beget.com
  • Добавить метки

    Приветствую, друзья! Села писать о том, как найти файл сайта легко и просто, но не могу удержаться – похвастаюсь, хотя от многих поздравление уже получила: 23 января 2016 года блог зарегистрирован в разделе «Поисковая оптимизация» Каталога трастовых сайтов. И теперь у меня в футере красуется кнопочка, по которой можно перейти и даже оставить комментарий.

    Теперь к делу. Всем, кто ведет блоги или сайты, приходится вносить какие-то правки в код, например, чтобы отредактировать дизайн. У меня сейчас стоит задача другая: избавиться от ошибок в валидности HTML. веб-ресурса влияет на его авторитет не меньше полезного оптимизированного контента и других составляющих. Сначала валидатор выдавал всего 5 ошибок, и я обратилась на форуме sbup.com к специалисту с ником Старый, который дает бесплатные консультации, а также работает на коммерческой основе. Им была обнаружена глобальная ошибка, из-за которой остальные не обнаруживаются. После устранения глобальной у меня вылезло ошибок и предупреждений уже около сорока.

    Исправить некоторые труда не составило, например, вставить исчезнувшие пробелы в ссылках. А чтобы устранить другие, требовалось найти место, которое нужно отредактировать. В поиске файлов клиенты Бегета могут обойтись без таких программ, как Notepad++. Искать по тексту или названию файла можно непосредственно в файловом менеджере. По возможности, область поиска нужно сузить, но если мы даже не предполагаем, где может находиться искомый объект, ищем в public_html (корне сайта).

    На практике это выглядит так: мне нужно удалить некий фрагмент, выбираю поиск по тексту и в строку вставляю выражение. Осталось запустить поиск и получить результат.

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

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

    Но не спешите! Самое время загрузить файл на компьютер, чтобы в случае чего заменить тот, который подвергся истязаниям. При таком подходе не потребуется делать резервного копирования всего сайта – существенная деталь, если папки с бэкапом выкладываются на аккаунт, а места лишнего не очень много.

    Вот и все. Я рассказала, как найти файл сайта на хостинге Бегет, но, думаю, и на других современных хостингах есть функция поиска.

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

    Зачем изобретать свой файловый менеджер

    В 2010 году мы использовали NetFTP, который вполне сносно решал задачи открыть/загрузить/подправить несколько файлов.
    Однако, пользователям иногда хотелось научиться переносить сайты между хостингами или у нас между аккаунтами, но сайт был большой, а интернет у пользователей не самый хороший. В итоге, или мы делали это сами (что явно было быстрее), или объясняли, что такое SSH, MC, SCP и прочие страшные вещи.

    Тогда у нас и появилась идея сделать WEB двух-панельный файловый менеджер, который работает на стороне сервера и может копировать между разными источниками на скорости сервера, а также, в котором будут: поиск по файлам и директориям, анализ занятого места (аналог ncdu), простая загрузка файлов, ну и много всего интересного. В общем, все то, что облегчило бы жизнь нашим пользователям и нам.

    В мае 2013 мы выложили его в продакшн на нашем хостинге. В некоторых моментах получилось даже лучше, чем мы хотели изначально - для загрузки файлов и доступа к локальной файловой системе написали Java апплет, позволяющий выбрать файлы и все сразу скопировать на хостинг или наоборот с хостинга (куда копировать не так важно, он умел работать и с удаленным FTP и с домашней директорией пользователя, но, к сожалению, скоро браузеры не будут его поддерживать).

  • Определение кодировки

    Задача:
    Открыть файл на редактирование с определением кодировки, записать с учетом исходной кодировки.

    Проблемы:
    Если у пользователя некорректно распознавалась кодировка, то при внесении изменений в файл c последующей записью мы можем получить UnicodeDecodeError и изменения не будут записаны.

    Все «костыли», которые в итоге были внесены, являются итогом работы по тикетам с файлами, полученными от пользователей, все «проблемные» файлы мы также используем для тестирования после внесенний изменений в код.

    Решение:
    Исследовав интернет в поисках данного решения, нашли библиотеку chardet . Данная библиотека, в свою очередь, является портом библиотеки от Mozilla. Она, например, используется в известном редакторе https://notepad-plus-plus.org

    Протестировав ее на реальных примерах, мы поняли, что в реальности она может ошибаться. Вместо CP-1251 может выдаваться, например, «MacCyrillic» или «ISO-8859-7», а вместо UTF-8 может быть «ISO-8859-2» или частный случай «ascii».

    Кроме этого, некоторые файлы на хостинге были utf-8, но содержали странные символы, то ли от редакторов, которые не умеют корректно работать с UTF, то ли еще откуда, специально для таких случаев также пришлось добавлять «костыли».

    Пример распознавания кодировки и чтения файлов, с комментариями

    # Для определения кодировки используем порт uchardet от Mozilla - python chardet # https://github.com/chardet/chardet # # Используем dev версию, там все самое свежее. # Данный код постоянно улучшается благодаря обратной связи с пользователями # чем больше - тем точнее определяется кодировка, но медленнее. 50000 - выбрано опытным путем self.charset_detect_buffer = 50000 # Берем часть файла part_content = content + content[-self.charset_detect_buffer:] chardet_result = chardet.detect(part_content) detected = chardet_result["encoding"] confidence = chardet_result["confidence"] # костыль для тех, кто использует кривые редакторы в windows # из-за этого в файлах utf-8 имеем cp-1251 из-за чего библиотека ведет себя непредсказуемо при детектировании re_utf8 = re.compile(".*charset\s*=\s*utf\-8.*", re.UNICODE | re.IGNORECASE | re.MULTILINE) html_ext = ["htm", "html", "phtml", "php", "inc", "tpl", "xml"] # Все вероятности выбраны опытным путем, на основе набора файлов для тестирования if confidence > 0.75 and detected != "windows-1251" and detected != FM.DEFAULT_ENCODING: if detected == "ISO-8859-7": detected = "windows-1251" if detected == "ISO-8859-2": detected = "utf-8" if detected == "ascii": detected = "utf-8" if detected == "MacCyrillic": detected = "windows-1251" # если все же ошиблись - костыль на указанный в файле charset if detected != FM.DEFAULT_ENCODING and file_ext in html_ext: result_of_search = re_utf8.search(part_content) self.logger.debug(result_of_search) if result_of_search is not None: self.logger.debug("matched utf-8 charset") detected = FM.DEFAULT_ENCODING else: self.logger.debug("not matched utf-8 charset") elif confidence > 0.60 and detected != "windows-1251" and detected != FM.DEFAULT_ENCODING: # Тут отдельная логика # Код убран для краткости из примера elif detected == "windows-1251" or detected == FM.DEFAULT_ENCODING: pass # Если определилось не очень верно, то тогда, скорее всего, это ошибка и берем UTF-8)) else: detected = FM.DEFAULT_ENCODING encoding = detected if (detected or "").lower() in FM.encodings else FM.DEFAULT_ENCODING answer = { "item": self._make_file_info(abs_path), "content": content, "encoding": encoding }

  • Параллельный поиск текста в файлах с учетом кодировки файла

    Задача:
    Организовать поиск текста в файлах с возможностью использования в имени «shell-style wildcards», то есть, например, " *.com" "$* = 42;" и т.д.

    Проблемы:
    Пользователь вводит слово «Контакты» - поиск показывает, что нет файлов с данным текстом, а в реальности они есть, но на хостинге у нас встречается множество кодировок даже в рамках одного проекта. Поэтому поиск также должен учитывать это.

    Несколько раз столкнулись с тем, что пользователи по ошибке могли вводить любые строки и выполнять несколько операций поиска на большом количестве папок, в дальнейшем это приводило к возрастанию нагрузки на серверах.

    Решение:
    Многозадачность организовали достаточно стандартно, используя модуль multiprocessing и две очереди (список всех файлов, список найденных файлов с искомыми вхождениями). Один воркер строит список файлов, а остальные, работая параллельно, разбирают его и осуществляют непосредственно поиск.

    Искомую строку можно представить в виде регулярного выражения, используя пакет fnmatch . Ссылка на итоговую реализацию поиска.

    Для решения проблемы с кодировками приведен пример кода с комментариями, там используется уже знакомый нам пакет chardet .

    Пример реализации воркера

    # Приведен пример воркера self.re_text = re.compile(".*" + fnmatch.translate(self.text)[:-7] + ".*", re.UNICODE | re.IGNORECASE) # remove \Z(?ms) from end of result expression def worker(re_text, file_queue, result_queue, logger, timeout): while int(time.time())
    В итоговой реализации добавлена возможность выставить время выполнения в секундах (таймаут) - по умолчанию выбран 1 час. В самих процессах воркеров понижен приоритет выполнения для снижения нагрузки на диск и на процессор.

  • Распаковка и создание файловых архивов

    Задача:
    Дать пользователям возможность создавать архивы (доступны zip, tar.gz, bz2, tar) и распаковывать их (gz, tar.gz, tar, rar, zip, 7z)

    Проблемы:
    Мы встретили множество проблем с «реальными» архивами, это и имена файлов в кодировке cp866 (DOS), и обратные слеши в именах файлов (windows). Некоторые библиотеки (стандартная ZipFile python3, python-libarchive) не работали с русскими именами внутри архива. Некоторые реализации библиотек, в частности SevenZip, RarFile не умеют распаковывать пустые папки и файлы (в архивах с CMS они встречаются постоянно). Также пользователи всегда хотят видеть процесс выполнения операции, а как это сделать если не позволяет библиотека (например просто делается вызов extractall())?

    Решение:
    Библиотеки ZipFile, а также libarchive-python пришлось исправлять и подключать как отдельные пакеты к проекту. Для libarchive-python пришлось сделать форк библиотеки и адаптировать ее под python 3.

    Создание файлов и папок с нулевым размером (баг замечен в библиотеках SevenZip и RarFile) пришлось делать отдельным циклом в самом начале по заголовкам файлов в архиве. По всем багам разработчикам отписали, как найдем время то отправим pull request им, судя по всему, исправлять они это сами не собираются.

    Отдельно сделана обработка gzip сжатых файлов (для дампов sql и проч.), тут обошлось без костылей с помощью стандартной библиотеки.

    Прогресс операции отслеживается с помощью вотчера на системный вызов IN_CREATE, используя библиотеку pyinotify . Работает, конечно, не очень точно (не всегда вотчер срабатывает, когда большая вложенность файлов, поэтому добавлен магический коэффициент 1.5), но задачу отобразить хоть что-то похожее для пользователей выполняет. Неплохое решение, учитывая, что нет возможности отследить это, не переписывая все библиотеки для архивов.

    Помогите нам сделать Sprut.IO лучше

    Очевидных возможностей для дальнейшего улучшения файлового менеджера достаточно много.

    Как наиболее полезные для пользователей, нам видятся:

    • Добавить поддержку SSH/SFTP
    • Добавить поддержку WebDav
    • Добавить терминал
    • Добавить возможность работы с Git
    • Добавить возможность расшаривания файлов
    • Добавить переключение тем оформление и создание различных тем
    • Сделать универсальный интерфейс работы с модулями

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

    Мы начнем их реализовывать, но не побоюсь этого сказать: своими силами на это уйдут годы если не десятилетия. Поэтому, если вы хотите научиться умеете программировать, знаете Python и ExtJS и хотите получить опыт разработки в открытом проекте - приглашаем вас присоединиться к разработке Sprut.IO. Тем более, что за каждую реализованную фичу мы будем выплачивать вознаграждение, так как нам не придется реализовывать ее самим.

  • Добавить метки

    В качестве движка, самое время выбрать хостинг - сервер, на котором Ваш сайт будет располагаться. В этой статье мы рассмотрим и его основные возможности.

    На самом деле хостинг - это не просто сервер. Хостинг - это также и панель управления, позволяющая настроить работу Вашего сайта, управлять файлами и базами данных, доменами и поддоменами, а также восстановить Ваш сайт из резервной копии в случае каких-либо непредвиденных обстоятельств.

    Давайте обо всем по порядку.

    Резервное копирование Ваших сайтов

    Автоматическое создание резервных копий Ваших сайтов (файлов и баз данных) - залог их стабильной работы. Вы не потеряете несколько месяцев работы только потому, что поленились лишний раз зайти в панель управления хостингом и создать «бэкап».

    Если в дальнейшем Вашему сайту станет тесно на бесплатном тарифе, Вы сможете перейти на любой другой. Цены не кусаются.

    30 дней бесплатного хостинга

    Если бесплатного тарифа Вам явно мало, Вы можете выбрать любой подходящий из платных. При этом целых 30 дней с момента регистрации Вы полноценно сможете пользоваться хостингом BeGet абсолютно бесплатно .

    Таких тестовых периодов на других хостингах почти не бывает.

    К тому же, если по каким-то причинам Вы не захотите пользоваться услугами BeGet по истечении этого периода, Вы можете просто отказаться от их услуг, не платя ни копейки.

    Заключение

    Почему мы решили рассказать Вам именно о, а не о каком-либо другом? Или даже не сделали обзор?

    Все просто - потому, что мы пользуемся этим хостингом сами . Нам нравится удобная и красочная панель управления, бесподобный файловый менеджер, автоматическое резервное копирование, автоматическая установка WordPress и отзывчивая служба поддержки.

    К тому же, в дальнейших статьях на Школе Блоггера мы будем публиковать подробные инструкции по отдельным моментам работы с хостингом - именно на примере BeGet. И нам хотелось бы, чтобы осваивать и внедрять полученные навыки Вам было просто.

    На этом, пожалуй, все. Интересующие Вас вопросы по теме приглашаю задавать в комментариях.

    В следующей статье я расскажу, как установить WordPress на хостинг . Подписывайтесь на обновления в колонке справа 😉

    Чтобы перенести сайт, работающий на CMS, на другой хостинг или локальный сервер, не достаточно просто скопировать его файлы из одного места в другое, для работы сайта необходимо еще перенести все данные из базы данных.

    Перед началом переноса сайта обязательно создайте текстовый файл и записывайте туда все данные - адрес, логин и пароль для входа в аккаунт хостинга, имя базы данных, имя пользователя, пароль базы данных, другие необходимые данные

    Независимо от того, какую CMS вы используете, процесс переноса будет состоять из следующих шагов:

    Действия на локальном сервере (или старом хостинге)

    1. Архивируем файлы сайта в архив в формате .zip

    2. Экспортируем данные из базы данных или, другими словами, создаем резевную копию базы данных . Упрощенно - это все данные нашей базы, которые записаны в текстовый файл с расширением .sql

    Действия на удаленном сервере (локальный сервер на другом компьютере или хостинг)

    1. Копируем на удаленный сервер архив с файлами сайта и разворачиваем его с сохранением структуры папок

    2. Проверяем права доступа к папкам и файлам и, если необходимо, изменяем их.

    3. Создаем новую базу данных . Запоминаем (записываем) название базы данных, имя пользователя, пароль к базе данных

    4. Импортируем в созданную базу данных резевную копию базы данных . (из файла с расширением .sql )

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

    6. В разделе кофигурации сайта меняем пути к файлам и временным папкам сайта на новые (если необходимо)

    Создание резервной копии сайта MODX на локальном сервере

    Создавать архив мы будем архиватором RAR, если он не установлен на вашем компьютере, скачайте его отсюда и установите его.

    Создание архива файлов сайта

    Открываем папку с файлами нашего сайта Z:/home/okarina.loc/www , выделяем все файлы и папки и кликаем правой кнопкой мыши на любом файле. В открывшемся меню выбираем пункт Добавить в архив...

    Создание архива с файлами сайта

    В открывшемся окне архиватора выбираем Формат архива - ZIP и нажимаем кнопку Ок

    Выбор типа архива

    Архив начнет создаваться и по завершению мы увидим в корневой папке нашего сайта файл с архивом www.zip

    Архив сайта

    Архив можно перенести в другую папку, чтобы он не "болтался" на нашем локальном сайте. Например, сделайте где-нибудь на диске папку Перенос сайта и перенесите его в нее.

    Создание резервной копии базы данных

    В браузере заходим в админку сайта, Инструменты -> Резервное копирование , кликаем галку перед пунктом Название таблицы , чтобы выделить все таблицы в базе данных и нажимаем кнопку создать и загрузить резервную копию выбранных таблиц

    Создание резервной копии базы данных сайта

    В появившемся окне открытия файла проверьте, что выбрано Сохранить файл и нажмите Ок

    Сохраняем базу данных в файл

    Чтобы найти сохраненный файл, нажмите на иконку в панеле браузера, как показано на картинке ниже (для браузера Firefox)

    Открываем папку с сохраненной копией базы данных

    Или в проводнике откройте папку Загрузки

    Папка Загрузки с копией базы данных

    Искомый файл должен иметь расширение .sql и в его названии должна присутствовать текущая дата

    Перенесите этот файл в папку Перенос сайта

    Сайт готов для переноса

    На этом подготовительная часть на локальном компьютере закончена. В папке Перенос сайта лежит архив нашего сайта и база данных.

    По этой ссылке вы можете скачать содержание моей папки Перенос сайта

    Регистрация аккаунта на хостинге BEGET.RU

    Мы можем зарегистрировать полноценный аккаунт нахостинге beget и в течении 30-ти дней он будет работать в тестовом режиме бесплатно.

    Заходим на сайт по адресу beget.ru и выбираем один из тарифов, например, Start . Этот тариф включает возможность зарегистрировать бесплатно домен в зоне RU

    Выбираем тариф

    Внимательно заполняйте поля, на указанный телефон будет выслан код подтверждения а на e-mail - данные по входу в аккаунт.

    Регистрация хостинга в BEGET

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

    Вводим код подтверждения для регистрации аккаунта в BEGET

    После подтверждения система покажет вам анимацию процесса создания вашего хостинга

    Создание аккаунта BEGET

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

    Хостниг BEGET. Завершение процесса регистрации нового аккаунта

    Чтобы первый раз зайти в панель управления хостингом beget.ru можно кликнуть на ссылку Перейти в Панель Управления

    Панель управления аккаунтом хостинга BEGET

    На этом регистрация окончена. Поздравляю, у вас есть свой хостинг!

    Перенос файлов сайта на хостинг BEGET и настройка прав доступа

    Войдите в панель управления хостингом и кликните на иконку Файлового менеджера

    Файловый менеджер хостинга BEGET

    При первом заходе вы увидите папку, название которой будет соответствовать адресу сайта, другими словами, это ваш тестовый домен .

    Тестовый домен на хостинге BEGET

    Чтобы загрузить архив нашего сайта на хостинг, заходим в папку [ваш аккаунт].bget/public_html и удаляем все из этой директории. Для этого выбираем все файлы и папки , кликаем правой кнопкой мыши и выбираем пункт Удалить . После чего нажимаем кнопку (синяя стрелка вверх) Загрузить файлы как показано на картинке ниже

    В появившемся окне нажимаем Выбрать... и выбираем архив нашего сайта www.zip , который находится в папке Перенос сайта

    Загружаем архив сайта на хостинг BEGET

    Правой кнопкой кликаем на файл архива , в выпадающем меню выбираем Распаковать архив

    Распаковка архива с файлами сайта на хостинге BEGET

    После распаковки архива можно удалить файл архива, чтобы он не занимал место на хостинге, кликаем по нему правой кнопкой и выбираем Удалить

    Удаление файла архива с хостинга BEGET

    Поднимаемся выше в дереве директорий, правой кнопкой кликаем на папке public_html и выбирем Изменить атрибуты

    Изменение атрибутов файлов и папок на хостинге BEGET

    В появившемся окне вводим в поле Кодовое значение - 755 , кликаем галку Применить рекурсивно и выбираем только к папкам . Этой операцией мы выставим необходимые права доступа для всех папок нашего сайта

    Выставляем права для папок сайта на хостинге BEGET

    Опять кликаем правой кнопкой мыши на папку public_html , выбираем Изменить атрибуты , вводим кодовое значение 644, применить рекурсивно, только к файлам

    Выставляем права на файлы сайта на хостинге BEGET

    В результате все папки нашего сайта должны иметь права 755 , а файлы 644

    Права на файлы и папки на хостинге BEGET

    Создание базы данных на хостинге BEGET и импорт данных

    В панеле управления кликаем на иконку MySQL

    Управление базами данных на хостинге BEGET

    Вписываем название базы данных и генерируем пароль

    Обязательно запишите название базы данных и пароль в текстовый файл!

    Создание новой базы данных на хостинге BEGET

    После создания базы данных кликаем на надпись phpMyAdmin

    Вход в базу данных через phpMyAdmin на хостинге BEGET

    Нажимаем кнопку Импорт

    Импортирование данных в базу данных на хостинге BEGET

    Нажимаем кнопку Обзор... , из папки Перенос сайта выбираем файл с базой данных (расширение sql ), после чего нажимаем кнопку Вперёд

    Импорт данных из резервной копии в базу данных на хостинге BEGET

    В результате будет выведено сообщение об успешном импорте и слева в колонке появятся таблицы базы данных

    Иногда браузер не выводит сообщение, либо вы можете не увидеть таблицы в левой колонке. Ничего страшного, просто подождите секунд 20-30 и перезагрузите страницу . Если в левой колонке появились таблицы - значит все в порядке

    Импортированные данные сайта в базу данных на хостинге BEGET

    Отлично! Мы развернули на хостинге файлы нашего сайта, настроили права доступа к ним, создали базу данных и импортировали в нее данные нашего сайта. Осталось совсем чуть-чуть.

    Файл конфигурации MODX и последние настройки

    В файловом менеджере на хостинге заходим в папку public_html/manager/includes , кликаем правой кнопкой на файл config.inc.php и в выпадающем меню выбираем правка

    Файл конфигурации MODX на хостинге BEGET

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

    На хостинге BEGET имя и пользователь базы данных имеют одинаковые названия

    Правка файла конфигурации сайта на MODX на хостинге BEGET

    После сохранения файла конфигурации для усиления безопастности сайта нужно запретить возможность правки файла конфигурации, для этого кликаем по файлу config.inc.php правой кнопкой мыши и в выпадающем меню выбираем Атрибуты . В появившемся окне в поле Кодовое значение вводим 600 и нажимаем кнопку Изменить

    Закрываем доступ к файлу конфигурации MODX на хостинге BEGET

    В браузере заходим в админку нашего сайта на удаленном хостинге, в адресной строке набираем [назв.аккаунта].bget.ru/manager , вводим логин и пароль доступа в админку (логин: admin , пароль: 1 ), выбираем Инструменты -> Конфигурация , переходим на вкладку Файл-менеджер и в поле Путь для файл-менеджера нажимаем кнопку Сброс

    Сброс пути для файл-менеджера в админке MODX

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

    Сброс пути для файл-браузер в админке MODX

    Переходим на вкладку Сайт , для очистки старых данных из кэша сайта нажимаем Очистить кэш и открываем наш сайт на хостинге, нажав пункт меню Просмотр

    Очистка кэша в MODX

    Наш сайт на MODX на хостинге BEGET

    Многие знают, что я давно работаю с хостингом BEGET.RU и всем его советую. Сегодня я увидел, что на моём любимом хостинге проводится розыгрыш, главным условием которого было порекомендовать сервис хостинга, написав статью в блоге. Поэтому я решил рассказать о файловом менеджере, разработанном в компании Бегет.

    Сначала небольшая справка. Компания ООО «Бегет» - это российский хостинг. Сервера находятся у нас. Раньше это был только Санкт-Петербург, сейчас, насколько я знаю, география расширена. MODX на хостинге работает отлично, а цены порадуют многих. Тем более, что первый месяц использования любого тарифа абсолютно бесплатный.

    Те, кого моя рекомендация уже заинтересовала, могут перейти по реферальной ссылке и зарегистрироваться: https://beget.ru/?id=12867 (да, да, работает реферальная система - до 40% от каждой оплаты рефералов перечисляется пригласившему в течение всего срока сотрудничества).

    А я пока расскажу о файловом менеджере.

    Изначально файловый менеджер был доступен только клиентам хостинга, однако сейчас он выделен в отдельный сервис и любой может установить его на своём сервере.

    Файловый менеджер довольно симпатичный. Он двухпанельный, причем работает и Drug&Drop - можно перетаскивать файлы из одной панели в другую

    Те, кто знаком с MC или FAR, или Total Commander разберутся с первого взгляда. Управление файлами интуитивно-понятно. Работает контекстное меню по клику правой кнопкой мыши.

    Менеджер позволяет распаковывать и запаковывать архивы, так что установка, например, MODX довольно удобная - залил архив и распаковал.

    Кроме того, можно менять права на файлы и даже редактировать их. Кстати, угадайте, какой редактор предоставляет SPRUT.io?

    Это же наш любимый ACE с автодополнением и настраиваемой подсветкой кода! =))

    Это далеко не все преимущества файлового менеджера SPRUT.io. Есть еще и просмотр изображений, возможность подключить внешний FTP-сервер, поиск по папкам и файлам, множественная загрузка файлов и пр.

    Все фишки перечислены на официальном сайте, там же есть и инструкция по установке у себя на сервере.

    SPRUT.io - это Open Source-проект, исходный код

    Приветствую, друзья! Села писать о том, как найти файл сайта легко и просто, но не могу удержаться – похвастаюсь, хотя от многих поздравление уже получила: 23 января 2016 года блог зарегистрирован в разделе «Поисковая оптимизация» Каталога трастовых сайтов. И теперь у меня в футере красуется кнопочка, по которой можно перейти и даже оставить комментарий.

    Теперь к делу. Всем, кто ведет блоги или сайты, приходится вносить какие-то правки в код, например, чтобы отредактировать дизайн. У меня сейчас стоит задача другая: избавиться от ошибок в валидности HTML. веб-ресурса влияет на его авторитет не меньше полезного оптимизированного контента и других составляющих. Сначала валидатор выдавал всего 5 ошибок, и я обратилась на форуме sbup.com к специалисту с ником Старый, который дает бесплатные консультации, а также работает на коммерческой основе. Им была обнаружена глобальная ошибка, из-за которой остальные не обнаруживаются. После устранения глобальной у меня вылезло ошибок и предупреждений уже около сорока.

    Исправить некоторые труда не составило, например, вставить исчезнувшие пробелы в ссылках. А чтобы устранить другие, требовалось найти место, которое нужно отредактировать. В поиске файлов клиенты Бегета могут обойтись без таких программ, как Notepad++. Искать по тексту или названию файла можно непосредственно в файловом менеджере. По возможности, область поиска нужно сузить, но если мы даже не предполагаем, где может находиться искомый объект, ищем в public_html (корне сайта).

    На практике это выглядит так: мне нужно удалить некий фрагмент, выбираю поиск по тексту и в строку вставляю выражение. Осталось запустить поиск и получить результат.

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

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

    Но не спешите! Самое время загрузить файл на компьютер, чтобы в случае чего заменить тот, который подвергся истязаниям. При таком подходе не потребуется делать резервного копирования всего сайта – существенная деталь, если папки с бэкапом выкладываются на аккаунт, а места лишнего не очень много.

    Вот и все. Я рассказала, как найти файл сайта на хостинге Бегет, но, думаю, и на других современных хостингах есть функция поиска.

    • Сергей Савенков

      какой то “куцый” обзор… как будто спешили куда то