Как отправить очень большой файл через интернет — расскажу о своем опыте
Вчера у меня возникла достаточно интересная ситуация — нужно было максимально быстро отправить файл свыше 50 гигабайт другому человеку. Наверняка, вам будет интересно, что было в этом файле? Не буду скрывать — архив очень старого и разросшегося сайта, в котором было очень много медиаконтента. Меня попросили провести ряд манипуляций с проектом, после чего я должен был его вернуть в измененном виде. Казалось бы, что тут сложного? Но файл нужно было отправить за очень короткое время — за 2 часа. Изначально я планировал сделать все очень просто — загрузить архив на FTP сервер своего хостинга и дать ссылку получателя. Но увы, свободных 50 гигабайт на моем сервере не было, а докупать дополнительное дисковое пространство заняло бы время. К тому же, у получателя была очень низкая скорость до моего сервера.
Дальше я начал анализировать — какие онлайн хранилища позволяют загружать такой объем файлов. Мне даже удалось найти такие, но снова появилась проблема — загружал бы я этот файл полдня. Скорость от моего провайдера до конечного сервера оставляла желать лучшего. А ведь получателю еще нужно потом скачать файл. Поэтому вариант передачи файла через «файлообменник» не рассматривался. На него бы ушел, как минимум, целый день. В данный момент скорость моего интернет соединения составляет 100 Мбит/сек, а это значит, что в идеальных условиях я могу отправить и загрузить такой файл за чуть больше 1 час.
Что делать?
Нужно как-то дать возможность конечному пользователю загрузить файл напрямую с моего компьютера. Читатели моего блога помнят, что у меня есть домашний NAS сервер, который с легкостью можно превратить в FTP или HTTP сервер. Но проблема была в том, что в этот момент я был не дома. Да, можно было потанцевать с бубном и попытаться поднять сервер. Но так как я был вне дома и доподлинно не знал как работает подключение к сети (есть ли белый IP), то возиться не стал. Для начала, с помощью программы WinRar, я разделил архив на части по 2 гигабайта. Архивировать не нужно — в целях экономии времени выставил опцию «без сжатия». Так будет проще, если вдруг соединение оборвется — не нужно начинать весь процесс сначала. Потом с помощью старого доброго TeamViewer’a соединился с человеком и отправил ему все части файлов чуть более чем за час. Вышло так, что файлы были отправлены без посредника в виде связующего сервера, поэтому времени много не потребовалось. Мой ПК отправлял данные, а получатель сразу же их получал. Был удивлен высокой скорости передачи. Задача была выполнена в срок, все остались довольны. В принципе, объем файла не важен. Влияет он только на время, которое вы затратите на загрузку. Любой файл можно разделить и загрузить объект по частям. Отсюда вывод: способ передачи не важен, можно даже посредством мессенджера или электронной почты, главное соблюдать максимальный размер файла. Также помните — не весь контент можно сжать ради уменьшения объема, например, фото, видео, аудио очень плохо поддаются компрессии. Хорошо сжимаются разве что файлы, которые содержат текстовые данные. Надеюсь, что моя информация кому-то поможет.
Были ли у вас такие проблемы? Напишите в комментариях 👇
Блог системного администратора
Как отправить очень большой файл через интернет — расскажу о своем опыте
Вчера у меня возникла достаточно интересная ситуация — нужно было максимально быстро отправить файл свыше 50 гигабайт другому человеку. Наверняка, вам будет интересно, что было в этом файле? Не буду скрывать — архив очень старого и разросшегося сайта, в котором было очень много медиаконтента. Меня попросили провести ряд манипуляций с проектом, после чего я должен был его вернуть в измененном виде.Казалось бы, что тут сложного? Но файл нужно было отправить за очень короткое время — за 2 часа. Изначально я планировал сделать все очень просто — загрузить архив на FTP сервер своего хостинга и дать ссылку получателя. Но увы, свободных 50 гигабайт на моем сервере не было, а докупать дополнительное дисковое пространство заняло бы время. К тому же, у получателя была очень низкая скорость до моего сервера.
А ведь получателю еще нужно потом скачать файл. Поэтому вариант передачи файла через «файлообменник» не рассматривался. На него бы ушел, как минимум, целый день. В данный момент скорость моего интернет соединения составляет 100 Мбит/сек, а это значит, что в идеальных условиях я могу отправить и загрузить такой файл за чуть больше 1 час.
Что делать?
Нужно как-то дать возможность конечному пользователю загрузить файл напрямую с моего компьютера. Читатели моего блога помнят, что у меня есть домашний NAS сервер, который с легкостью можно превратить в FTP или HTTP сервер. Но проблема была в том, что в этот момент я был не дома. Да, можно было потанцевать с бубном и попытаться поднять сервер. Но так как я был вне дома и доподлинно не знал как работает подключение к сети (есть ли белый IP), то возиться не стал.Для начала, с помощью программы WinRar, я разделил архив на части по 2 гигабайта. Архивировать не нужно — в целях экономии времени выставил опцию «без сжатия».
Так будет проще, если вдруг соединение оборвется — не нужно начинать весь процесс сначала. Потом с помощью старого доброго TeamViewer’a соединился с человеком и отправил ему все части файлов чуть более чем за час.
Вышло так, что файлы были отправлены без посредника в виде связующего сервера, поэтому времени много не потребовалось. Мой ПК отправлял данные, а получатель сразу же их получал. Был удивлен высокой скорости передачи. Задача была выполнена в срок, все остались довольны.
В принципе, объем файла не важен. Влияет он только на время, которое вы затратите на загрузку. Любой файл можно разделить и загрузить объект по частям. Отсюда вывод: способ передачи не важен, можно даже посредством мессенджера или электронной почты, главное соблюдать максимальный размер файла.
Также помните — не весь контент можно сжать ради уменьшения объема, например, фото, видео, аудио очень плохо поддаются компрессии. Хорошо сжимаются разве что файлы, которые содержат текстовые данные.
Надеюсь, что моя информация кому-то поможет.
Были ли у вас такие проблемы? Напишите в комментариях 👇
Подписывайтесь, чтобы не пропустить новые публикации:Телеграм-канал (https://ok.me/9FGs) | Вконтакте (https://ok.me/yO6v) | Одноклассники (https://ok.me/zO6v)