Sprawdź klejnoty Net::SCP i Net::SSH. Pierwsza pozwala pobrać plik za pomocą bezpiecznej kopii, a druga pozwala łatwo znaleźć nazwy plików dostępnych do pobrania. W Net :: SSH, ssh.exec!
będzie twoim przyjacielem.
Z Net::SCP docs:
Net :: SCP realizuje SCP (Secure Copy) protokół klienta, co pozwala na bezpieczne programy Ruby i programowo przesyłania pojedynczych plików lub całych drzew katalogów z serwerów zdalnych. Zapewnia obsługę wielu jednoczesnych kopii SCP pracujących równolegle przez to samo połączenie, a także synchronicznych kopii seryjnych.
Net :: SCP zapewnia również open-uri tie-in, dzięki czemu można używać jądra # otwartej metody, aby otworzyć i przeczytać plik zdalny:
# if you want to read from a URL voa SCP:
require 'uri/open-scp'
puts open("scp://[email protected]/path/to/file").read
od Net::SSH docs:
require 'net/ssh'
Net::SSH.start('host', 'user', :password => "password") do |ssh|
# capture all stderr and stdout output from a remote process
output = ssh.exec!("hostname")
Dodaj end
do powyższego kodu, aby zamknąć blok. Wewnątrz bloku output
będzie zawierać wyniki wysłanego polecenia.
Alternatywą dla pobierania plików za pośrednictwem Ruby z komputera zawierającego pliki, byłoby zainicjowanie transferu przez Ruby bezpośrednio z komputera obsługującego pliki i przesłanie ich przez numer scp
do drugiego komputera.
Zamiast używać Net :: SCP i Net :: SSH, możesz użyć Net::SFTP, aby zarządzać wszystkimi w jednym klejnocie. Podróżuje też bezpiecznym połączeniem, ale SFTP może nie być dla ciebie dostępny. Klasy i dokumenty Net::SFTP::Operations::Dir
i Net::SFTP::Operations::Download
będą Twoimi przyjaciółmi.
Inne opcje obejmują użycie standardu rsync
w prostej powłoce, o której mowa w artykule. Istnieje wiele sposobów na osiągnięcie tego i jest to powszechna potrzeba w środowiskach hostingowych.
każda inna lepsze podejście?
rsync
, w wierszu polecenia. Jest bardzo inteligentny i może w razie potrzeby przenosić foldery i delty plików. Ponadto "How to transfer files using ssh and Ruby" i jego link do "Ruby file upload ssh intro".
Melding @ tadman's rsync
zalecenie z Ruby, jest "Cheapest rsync replacement (with Ruby)".
Niektóre firmy nie pozwalają klucza dostępu. To ból, który musi radzić sobie z hasłami, ale jest także częścią ich polityki bezpieczeństwa. –
Niektóre firmy mają również działy IT obsadzone trollami. Hasła można odgadnąć. Klucze muszą zostać skradzione. – tadman
To może być. Faktem jest, że niektóre miejsca wymagają haseł. –