Uzak FTP sunucusundaki bir dosyayı, FTP'de Net :: FTP kullanarak aynı FTP sunucusundaki bir dizine nasıl taşınır senaryo. Dosya adını biliyorum ve ftp.mkdir kullanarak bir dizin oluşturduk ama görünüşe göre dosyayı oluşturulan klasöre taşımak için bir yöntem yok.Uzak FTP sunucusundaki bir dosyayı, aynı FTP sunucusundaki bir dizine ruby komut dosyasındaki Net :: FTP kullanarak taşıma nasıl yapılır
cevap
putbinaryfile
ve puttextfile
örnek yöntemleri vardır. Bu yeterli değil mi? Veya sadece ftp sunucusunun bir alanında hareket etmek istiyorsanız, rename
yöntemi vardır.
Yalnızca ftp sunucusu kapsamında taşımak istiyorum. Kullanım durumu, inProcess adlı klasörlerde olacak ve dosyaların izlenmesini ve işlenmesini sağlayacak şekilde işlenecektir. –
Yeniden adlandır komutunu deneyin. Eğer işe yaramazsa, şu komutu deneyebilirsiniz: "SITE mv oldpath newpath". Bu, sunucunun sunucudaki komutu çalıştırmasını söyler. Beklenen davranış, tüm sunucularda çalışmayacaktır, ancak yalnızca bazılarında, bu nedenle SITE komutunu yalnızca belirli bir sunucuyla çalışacağından eminseniz kullanın.
Ya, ben bu ftp.sendcmd ("SITE mv # {f} inProcess/# {f}") gibi denedim. Çalışmıyor .... HATA: 500 Bilinmeyen SITE komutu veriyor. –
@ user2164844 Daha sonra sunucu ya SITE'yi desteklemiyor ya da SITE üzerinden kabuk komutlarını desteklemiyor. Ardından tek alternatif yeniden adlandır (eğer işe yararsa) –
Dosyalar (& Dizinler) Net::FTP
Sınıfının rename()
yöntemi kullanılarak taşınabilir. Örnek:
ftp = Net::FTP.new("ftp.myserver.com","myusername","mypassword")
ftp.binary = true
ftp.passive = true
path1 = "/original/dir/path/" # Dir to move
path2 = "/new/path/" # New path of Dir
ftp.rename(path1, path2)
Ve işte bu! Bu, tüm dosyaların aynı FTP Sunucusu üzerinde bir yoldan diğerine geçmesine neden olur.
Buraya bakın: http://stackoverflow.com/a/17351238/1533054 – Sheharyar