Я создал веб-приложение, которое работает на виртуальном сервере для одного из моих клиентов. Он включает в себя возможность загружать файлы, но теперь они хотят хранить эти файлы на сервере в своем офисе.
Самый простой способ сделать это - смонтировать свою файловую систему через Интернет непосредственно на виртуальном сервере. У меня есть опыт монтирования NFS по внутренней сети, но я не уверен, будет ли он работать в этом сценарии.
Какие-нибудь мысли? Я всегда могу написать новое программное обеспечение для передачи файлов, но это было бы легко исправить!
Примечание. Сервером в офисе является сервер Ubuntu 12, работающий на виртуальном сервере в среде Windows Hyper-V. VPS с веб-приложением - Ubuntu 11.04
linux
filesystems
internet
nfs
Бен Холнесс
источник
источник
Ответы:
Никто еще не упомянул sshfs . Если вы работаете в современном дистрибутиве Linux и имеете доступ по ssh к удаленному хосту, это просто:
Производительность вполне приемлема (но не так быстро, как потоковая синхронизация, например, rsync, если вам нужен весь каталог).
источник
NFS по своей природе небезопасен. Это был бы очень плохой выбор для подключения через Интернет.
Мне нравится пост, в котором упоминается Rsync. Вместо того, чтобы использовать cron для запуска передачи, я надеюсь, что вы можете просто запустить задание rsync из своего кода, который обрабатывает загрузку файлов.
Когда загрузка завершится, rsync файл на их сервер, готово.
Я бы ожидал, что вам нужно будет установить безопасное соединение со своим сервером для передачи.
Если вы хотите, вы можете поместить входящие файлы в список для передачи, удалив имена после успешного копирования, и дать себе возможность переключения при сбое в случае, если что-то случится с соединением.
Как уже отмечал кто-то, rsync предназначен для обработки групп файлов или иерархии (спасибо, проверка орфографии), поэтому это не составит особого труда.
источник
NFS может быть небезопасным, но это не ошибка службы. Telnet и FTP также небезопасны, но оба они десятилетиями использовались в открытом Интернете. Если зашифрованный VPN-туннель установлен, то отсутствие шифрования NFS не имеет значения.
Кроме того, если брандмауэр настроен так, чтобы разрешать только определенный адрес удаленного хоста подключаться к точке монтирования NFS, то простое соединение NFS в основном защищено от взлома, за исключением трехбуквенных агентств, которые прослушивают интернет-трафик и имеют доступ к мощной расшифровке для взломать ваши зашифрованные удаленные соединения в любом случае.
Я вижу, что некоторые версии NFS по умолчанию используют UDP, что, вероятно, является причиной проблем с надежностью Интернета. UDP-пакеты могут быть потеряны, если соединение перегружено, и повторная передача не предпринимается автоматически. Если вы хотите надежного соединения, убедитесь, что ваша NFS использует (или вынуждена использовать только) TCP-пакеты через Интернет.
источник
NFS можно сделать через брандмауэр. Если вы выполните поиск, вы найдете других, кто пытался и успешно справился с этим процессом, однако он не так прост, как открытие портов, и, по-видимому, зависит от используемой версии NFS.
rsync - отличное предложение, обладающее большой гибкостью. Тем не менее, это будет процесс, запущенный за пределами вашего приложения. rsync может синхронизировать обновления локальных файлов и поддерживать весь каталог в синхронизации с другими папками.
ssh будет еще одним безопасным вариантом, и для его открытия потребуется только один порт. Я использовал это в прошлом между системами Windows и Linux и хорошо работал как внутри приложения, так и при планировании процесса.
Я уверен, что есть и другие способы выполнить то, что вы ищете, но нам понадобится больше информации о типах файлов, и если вы связываете их со страницей или добавляете в поток что-то более сложное.
источник
Монтирование NFS может быть выполнено с использованием автомонтирования, которое продолжит попытки монтирования при сбое, но я мог бы использовать его только по каналам с помощью vpn или другого безопасного соединения (на самом деле, я бы не стал это рассматривать, но Вы звучите сосредоточенно на идее).
Даже при использовании автоматического монтирования, если есть проблема с сетью, и вы помещаете их загрузки в монтирование NFS, загрузка, скорее всего, завершится неудачно или будет повреждена, если вы не сохраните файл локально, а затем скопируете его при успешной загрузке.
источник