Как сделать раздачу файлов с домашнего компьютера с серым IP
Если ссылки на них расположены на обычном shared-хостинге
Страницы:
Распечатать
- 1
- 2
К данной теме присоединены сообщения из темы «Первые дни после возвращения к обычной жизни»
присоединяюсь.
А вообще можно так забирать файлы с компа клиента с серым IP на сервер ?
у меня задача средствами обычного дешевого хостинга (я так понимаю где только доступен апач, нгинкс, рнр и БД) забирать файлы с компа с серым IP.
Пока я смог реализовать это только через IPFS, и то через шлюз чужой, то есть я зависим.
Пример тут.
Вот я же могу здесь добавить файл в комментарий...хотя я на сером IP и еще и за NATом. Просто как это автоматизировать может можно.
Причем мне надо чтобы ВЕБсервер просто забирал файл и отдавал в другую сторону уже в составе cтраницы, или отдельно, тому кто запросил, но не хранил у себя. (ну или хранил как минимум некоторое время - недолго и стирал), хотя для больших файлов типа видео, лучше чтобы и не хранил вообще на сервере
Но ведь даже у самого отстойного хостера каким-то образом предусмотрена загрузка файлов, через веб-морду, FTP или может даже SFTP. Но на крайняк можно воспользоваться чем-нибудь вроде Encode Explorer. Либо самому написать простенький скрипт загрузки файлов, если есть опыт и желание. Главное — не допускать возможность загрузки неопознанными лицами файлов на сервер, тем более тех, которые могут быть выполнены сервером (например *.php файлов).
. Редактировалось 1 раз, последний — #6
Мне надо чтобы не я загружал, и не на сервер. А сайт сам забирал файлы которые лежат на удаленном компе с серым IP (у себя не хранил), а пересылал дальше тому кто открыл сайт. то есть пользовался моим компом как сетевой папкой. На сервере должен лежать только что то типа index.html, а картинки, видео, и прочее медиа, он забирал бы с моего компа.
загрузить то я могу на сервер. Проблема то именно в том чтобы не загружать туда, потому что места там мало.
Мне надо чтобы сайт не загружал, а временно подгружал медиа, когда создает страницу для отдачи посетителю (то есть как бы перенаправлял)
загрузить то я могу на сервер. Проблема то именно в том чтобы не загружать туда, потому что места там мало.
Мне надо чтобы сайт не загружал, а временно подгружал медиа, когда создает страницу для отдачи посетителю (то есть как бы перенаправлял)
Aksion написал(а):
просто забирал файл и отдавал в другую сторону уже в составе cтраницы, или отдельно, тому кто запросил, но не хранил у себя
А вот это непонятно — как это, чтобы забирал, но не хранил у себя. Чтобы файл передавался напрямую от клиента (например, тебя) к другому клиенту — это можно, но сложно. Это делается на JavaScript средствами WebRTC, а если клиенты могут быть за NATом (а они могут), то понадобятся STUN/TURN сервера. Веб-звонилки типа Jitsi работают по такому принципу. Я раньше когда-то хотел написать свою P2P звонилку, и даже написал тестовый вариант, но так и не доделал. И с этими серверами я не заморачивался. А если просто отдать файл с сервера и сразу же после отдачи удалить его на сервере, то тут возникает проблема с тем, чтобы определить, докачал пользователь файл или нет, т. к. отдаёт файл не PHP, а веб-сервер, и знает об этом только он. А если нужно раз в сутки подчищать старые файлы (по времени доступа), то можно добавить в crontab задание, если хостер даёт доступ к cron ("+7" = одна неделя):
0 0 * * * find /путь/к/каталогу/с/файлами -type f -atime +7 -exec rm -f {} \;
. Редактировалось 1 раз, последний — #8
У Aksionа задача в том, чтобы раздавать с домашнего компа большие файлы, которые просто на хостинге не умещаются.
Мне, кстати, пришло в голову, как это можно сделать, но решение будет дико тормозное в плане скорости и требеует своего VDS.
Суть в следующем: поднимаем на домашнем компьютере SSH-сервер. Далее с домашнего компьютера подключаемся по SSH к серверу и делаем проброс порта: порт 22 домашенго компьютера отображаем на порт 2022 на сервере (вечно путаюсь, прямой это проброс или обратный). Далее на сервере монтируем sshfs, указав в качестве адреса localhost:2022. Т.е. что-то вроде mount-t sshfs localhost:2022/your/home/path /server/path.
А дальше файлы будут видны на сервере по адресу /server/path, для него делаем поддомен, где указываем в качестве DocumentRoot /server/path и раздаём.
Ну или возвращаемсяк варианту с tailscale — поднимаем сервер на домашнем компьютере и пробрасываем его наружу с помощью tailscale (но там будет домен 4-ого уровня в зоне tailscale.org или net, не помню.)
Мне, кстати, пришло в голову, как это можно сделать, но решение будет дико тормозное в плане скорости и требеует своего VDS.
Суть в следующем: поднимаем на домашнем компьютере SSH-сервер. Далее с домашнего компьютера подключаемся по SSH к серверу и делаем проброс порта: порт 22 домашенго компьютера отображаем на порт 2022 на сервере (вечно путаюсь, прямой это проброс или обратный). Далее на сервере монтируем sshfs, указав в качестве адреса localhost:2022. Т.е. что-то вроде mount-t sshfs localhost:2022/your/home/path /server/path.
А дальше файлы будут видны на сервере по адресу /server/path, для него делаем поддомен, где указываем в качестве DocumentRoot /server/path и раздаём.
Ну или возвращаемсяк варианту с tailscale — поднимаем сервер на домашнем компьютере и пробрасываем его наружу с помощью tailscale (но там будет домен 4-ого уровня в зоне tailscale.org или net, не помню.)
Ребята, давайте жить спокойно!
. Редактировалось 1 раз, последний — #9
На дешёвом shared-хостинге явно не будет никакого sshfs с FUSE, а то и даже SSH-сервера (но это всё же редкость). С WebRTC вариант, скорее всего, реальный, но только если готов с ним разбираться и заниматься разработкой под него (честно, я бы не захотел без веской причины с ним заморачиваться).
А нельзя ли что-нибудь придумать с UPnP (думаю, вряд ли, но всё же)? Статья на тему, обсуждение на LORе.
Либо законнектиться по SSH на сервер хостера и пробросить на него порт, на котором работает локальный веб-сервер. И каким-то образом сделать так, чтобы сервер хостера перенаправлял запросы на этот порт, т. е. работал по сути как прокси. Либо чтобы тот удалённый порт, на который выполняется проброс, принимал соединения извне, а не только с localhost, как это по умолчанию.
А если ничто из этого не вариант, то тогда надо искать какой-то P2P-софт, который может передавать файлы между клиентами с «серыми» IP.
А нельзя ли что-нибудь придумать с UPnP (думаю, вряд ли, но всё же)? Статья на тему, обсуждение на LORе.
Либо законнектиться по SSH на сервер хостера и пробросить на него порт, на котором работает локальный веб-сервер. И каким-то образом сделать так, чтобы сервер хостера перенаправлял запросы на этот порт, т. е. работал по сути как прокси. Либо чтобы тот удалённый порт, на который выполняется проброс, принимал соединения извне, а не только с localhost, как это по умолчанию.
А если ничто из этого не вариант, то тогда надо искать какой-то P2P-софт, который может передавать файлы между клиентами с «серыми» IP.
. Редактировалось 1 раз, последний — #10
Вот примерно то, что я писал про WebRTC, только не на любой хостинг поставишь: https://sendfiles.dev/
Страницы:
Распечатать - 1
- 2
У вас нет прав для отправки сообщений в эту тему.