Как хранить файлы на сервере

Обновлено: 21.11.2024

В этой статье показано, как опубликовать свой сайт в Интернете с помощью инструментов передачи файлов.

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

Обзор

Если вы создали простую веб-страницу (см. пример в разделе Основы HTML), вы, вероятно, захотите разместить ее в Интернете на веб-сервере. В этой статье мы обсудим, как это сделать, используя различные доступные варианты, такие как клиенты SFTP, RSync и GitHub.

Существует несколько клиентов SFTP. Наша демонстрация охватывает FileZilla, поскольку она бесплатна и доступна для Windows, macOS и Linux. Чтобы установить FileZilla, перейдите на страницу загрузок FileZilla, нажмите большую кнопку «Загрузить», затем выполните установку из установочного файла обычным способом.

Примечание. Конечно, есть много других вариантов. Дополнительную информацию см. в разделе Инструменты публикации.

Откройте приложение FileZilla; вы должны увидеть что-то вроде этого:

Вход

Мы только что открыли учетную запись и получили от них следующую информацию:

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

Чтобы подключить SFTP-клиент к удаленному серверу, выполните следующие действия:

  1. Выберите Файл > Диспетчер сайтов в главном меню.
  2. В окне Диспетчер сайтов нажмите кнопку Новый сайт, затем введите название сайта как demozilla в отведенном месте.
  3. Укажите SFTP-сервер, указанный вашим хостом, в поле Хост:.
  4. В раскрывающемся списке Тип входа: выберите Обычный, затем введите предоставленные имя пользователя и пароль в соответствующие поля.
  5. Укажите правильный порт и другую информацию.

Ваше окно должно выглядеть примерно так:

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

Примечание. Убедитесь, что ваш хостинг-провайдер предлагает SFTP-подключение (Secure FTP) к вашему хостинг-пространству. FTP по своей природе небезопасен, и вам не следует его использовать.

После подключения ваш экран должен выглядеть примерно так (мы подключились к нашему собственному примеру, чтобы дать вам представление):

Давайте посмотрим, что вы видите:

  • В центре левой панели вы видите свои локальные файлы. Перейдите в каталог, в котором хранится ваш веб-сайт (например, mdn ).
  • В центре правой панели вы видите удаленные файлы. Мы вошли в наш удаленный корневой каталог FTP (в данном случае users/demozilla )
  • Пока вы можете игнорировать нижнюю и верхнюю панели. Соответственно, это журнал сообщений, показывающий состояние соединения между вашим компьютером и SFTP-сервером, а также живой журнал каждого взаимодействия между вашим SFTP-клиентом и сервером.

Загрузка на сервер

В нашем примере инструкции для хоста говорили нам: "Чтобы опубликовать в Интернете, поместите свои файлы в каталог Public/htdocs". Вам нужно перейти в указанный каталог на правой панели. Этот каталог фактически является корневым каталогом вашего веб-сайта, куда будут помещены файл index.html и другие ресурсы.

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

Они действительно онлайн?

И наш сайт работает!

R-синхронизация

Rsync – это инструмент для синхронизации файлов между локальными и удаленными системами, который обычно доступен в большинстве систем на базе Unix (например, в macOS и Linux), но существуют и версии для Windows.

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

  • -options — это тире, за которым следует одна или несколько букв, например, -v для подробных сообщений об ошибках и -b для создания резервных копий. Вы можете увидеть полный список на справочной странице rsync (ищите «Сводка параметров»).
  • ИСТОЧНИК — это путь к локальному файлу или каталогу, из которого вы хотите скопировать файлы.
  • user@ — это учетные данные пользователя на удаленном сервере, на который вы хотите скопировать файлы.
  • x.x.x.x — это IP-адрес удаленного сервера.
  • DESTINATION – это путь к папке, в которую вы хотите скопировать каталог или файлы на удаленном сервере.

Такие сведения необходимо получить у вашего хостинг-провайдера.

Конечно, рекомендуется использовать безопасное соединение, например FTP. В случае Rsync вы указываете данные SSH, чтобы установить соединение через SSH, используя параметр -e. Например:

Более подробные сведения о том, что необходимо, см. в разделе Как копировать файлы с помощью Rsync через SSH.

Инструменты Rsync с графическим интерфейсом

Для Rsync доступны инструменты с графическим интерфейсом (для тех, кому неудобно пользоваться командной строкой). Одним из таких инструментов является Acrosync, который доступен для Windows и macOS.

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

GitHub

GitHub позволяет публиковать веб-сайты через страницы GitHub (gh-pages).

Основные принципы использования этой функции мы рассмотрели в статье "Публикация веб-сайта" из нашего руководства "Начало работы в Интернете", поэтому не будем здесь повторяться.

Однако стоит знать, что вы также можете разместить веб-сайт на GitHub, но использовать с ним собственный домен. Подробное руководство см. в разделе Использование личного домена с GitHub Pages.

Другие способы загрузки файлов

Протокол FTP — это один из известных методов публикации веб-сайтов, но не единственный. Вот несколько других возможностей:

В моем проекте (похожем на mediafire и rapidshare) клиенты могут загружать файлы на сервер. Я использую базу данных DB2 и веб-сервер IBM WAS и JSP в качестве сценариев на стороне сервера. Я создаю свой собственный алгоритм шифрования, так как это основная цель проекта.

Мне нужен совет, следует ли хранить сами файлы в базе данных или следует хранить только расположение файлов. Какой подход лучше?

Кстати, создание собственного алгоритма шифрования крайне осуждается (см. этот вопрос/ответ на сайте безопасности здесь). Я уверен, что для вашей ситуации существуют существующие библиотеки. помимо того факта, что DB2 может автоматически шифровать содержимое столбцов.

3 ответа 3

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

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

  • Поддержка СУБД для больших двоичных объектов в настоящее время очень хороша
  • Драйвер JDBC очень хорошо поддерживает большие двоичные объекты
  • доступ к «документам» может происходить внутри транзакции. Не нужно беспокоиться о ручной очистке или «домашнем хозяйстве». Если строка удалена, данные BLOB удаляются.
  • Не беспокойтесь об ограничениях файловой системы. Файловые системы обычно не очень хороши для хранения миллионов файлов в одном каталоге. Вам придется распределить файлы по нескольким каталогам.
  • Все резервируется вместе. Если вы делаете резервную копию базы данных, у вас есть все, не нужно беспокоиться о дополнительной резервной копии файловой системы (но см. ниже)
  • Легкий доступ через SQL (не требуется FTP или другие инструменты). Этот доступ уже есть и находится под контролем.
  • Те же средства контроля доступа, что и для остальных данных. Нет необходимости настраивать группы пользователей ОС для ограничения доступа к файлам BLOB.

Недостатки

  • Недоступен напрямую из ОС (проблема, если вам нужно манипулировать файлами с помощью инструментов командной строки)
  • Не может обслуживаться, например. веб-сервер напрямую (это может быть проблемой производительности)
  • Резервное копирование (и восстановление) базы данных сложнее (из-за размера). Инкрементные резервные копии обычно более эффективны в файловой системе.
  • Особенности кэширования СУБД
  • Не подходит для сценариев с большим объемом записи.

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

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

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

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

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

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

Если вы еще не используете Stormpath, вы с ума сошли?! Зарегистрируйтесь и начните использовать его прямо сейчас! Это абсолютно бесплатно (если вы не создаете крупный проект) и значительно упрощает создание безопасных веб-приложений, служб API и мобильных приложений.

Где хранить файлы?

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

  1. Хранить пользовательские файлы в вашей базе данных в текстовом столбце или подобном
  2. Храните пользовательские файлы прямо на вашем веб-сервере
  3. Хранить пользовательские файлы в службе хранения файлов, например Amazon S3.

Сохранение файлов непосредственно в базе данных не очень эффективно. Базы данных не оптимизированы для хранения больших BLOB-объектов контента. Как получение, так и сохранение файлов с сервера базы данных невероятно медленны и обременяют все другие запросы к базе данных.

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

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

Для хранения того, что иногда может быть конфиденциальной информацией, служба хранения файлов, такая как Amazon S3, — отличный способ получить лучшее из всех миров: доступность, простота и безопасность.

Чтобы зарегистрировать учетную запись Amazon Web Services (AWS) и начать использовать Amazon S3, посетите их веб-сайт здесь.

Как хранить файлы в S3?

Теперь, когда мы поговорили о том, где вы должны хранить свои пользовательские файлы (такой сервис, как Amazon S3), давайте поговорим о том, как вы на самом деле храните свои файлы там.

При хранении файлов в S3 необходимо понимать несколько вещей.

Во-первых, вам нужно выбрать регион AWS, в котором вы хотите разместить свои файлы. Регион Амазонки — это, по сути, центр обработки данных в определенной части мира.

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

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

На веб-сайте Amazon есть список регионов, для которых вы можете хранить файлы в S3.

Первое, что вам нужно сделать, это использовать приведенный выше список, чтобы выбрать наиболее подходящее место для хранения ваших файлов. Если вы создаете веб-приложение, которое должно быть быстрым со всего мира: не беспокойтесь, просто выберите ближайший к вам регион AWS — вы всегда можете использовать сервис CDN, такой как Amazon Cloudfront, чтобы оптимизировать это позже.

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

Допустим, я создаю приложение под названием "Лучшее тестовое приложение". Вероятно, я бы назвал свою корзину S3 "самое лучшее тестовое приложение".

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

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

Это подводит нас к следующему вопросу: как структурировать корзину S3 при хранении пользовательских файлов?

Лучший способ сделать это — разбить корзину S3 на подпапки, предназначенные для конкретных пользователей.

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

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

Я пытаюсь найти лучшее решение для этого. Я пытался перенаправить папки с рабочего стола на сервер, но если сеть временно не работает, пользователи не смогут просматривать/получать доступ/сохранять файлы на сервере. Также пара пользователей время от времени работает вне офиса. Каков наилучший (безопасный) способ доступа к серверу? VPN? Удаленный рабочий стол?

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

Мы будем признательны за любые комментарии.

Угрозы кибербезопасности и потребность в надежном резервном копировании

2022-03-29 18:00:00 UTC Вебинар Вебинар: Spanning — угрозы кибербезопасности и потребность в надежном резервном копировании Сведения о событии Просмотреть все события

5 ответов

WeatherMan_ZA

Dextrous Solutions — поставщик ИТ-услуг.

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

маркгергель

Перенаправление папки групповой политики Google с автономными файлами. Вы можете настроить синхронизацию.

Небольшой забавный толчок. :)

chmod0777

kd2121 пишет:

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

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

Я много раз видел перенаправление папок, и это никогда не срабатывало.

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

Кевинмхси

Я использую перенаправление папок с автономными файлами уже около десяти лет. Отлично работает для меня. Перенаправление папки осуществляется в пространство имен DFS. Автономные папки только для ноутбуков. Единственная проблема возникает, когда у людей очень большие автономные папки (скажем, много-много ГБ) и медленно вращающиеся диски на ноутбуке или сервере. Я давно не видел проблем с производительностью с тех пор, как наши файловые серверы и ноутбуки получили более быстрые диски.

kd2121 пишет:

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

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

Я много раз видел перенаправление папок, и это никогда не срабатывало.

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

Пожалуйста, не делайте этого неправильно (или не делайте), но этот комментарий ужасен. Это все равно, что сказать: «Не используйте серверы Windows в своей сети, потому что они слишком часто дают сбой». Если ваш сетевой персонал не может правильно реализовать перенаправление рабочего стола / автономные файлы, их необходимо уволить и / или вернуться в McDonalds. Это две самые популярные сетевые службы на стороне сервера Windows (буквально видели, как они работают в сотнях компаний), и они работают очень и очень хорошо. Автономные файлы могут потребовать некоторого периодического обслуживания, или вы выстрелите себе в ногу, пытаясь получить файлы .OST для синхронизации по одному в месяц через беспроводную сеть низкого качества. такие вещи.

Меня беспокоит то, что мы не знаем, использует ли OP серверную часть Windows, потому что он не уточнил, и я не сторонник попыток включить перенаправление в расположении Windows Pier>Pier.

Эта тема заблокирована администратором и больше не открыта для комментариев.

Читайте также: