Bagaimana mungkin Zip, Unduh dan Hapus (ZDD) file dalam WinSCP?
Misalnya, direktori lokal Anda adalah Desktop dan remote Anda untuk (yang ada di mesin server Anda) adalah, katakanlah, /var/www/html
dan Anda ingin zip dan mengunduh dir atau file tertentu, dan kemudian Anda ingin menghapusnya saat unduhan selesai.
Untuk lebih jelasnya, di linux bisa saya lakukan, misalnya:
(
zip -r /var/www/html/dr.zip /var/www/html
scp /var/www/html/dr.zip USER@IP:/location
rm /var/www/html/dr.zip
)
Saya memerlukan hal serupa untuk WinSCP namun saya sadar bahwa Mekanisme pengunduhan WinSCP harus digunakan dan berbeda dari Nix scp
utilitas.
Pertanyaan saya:
Apakah Anda tahu cara untuk mencapai ini dengan WinSCP?
Jawaban:
Tidak ada cara untuk file ZIP melalui protokol transfer file (SFTP, FTP, SCP atau WebDAV). Itu sebabnya tidak ada fungsi seperti itu di WinSCP, karena tidak dapat diimplementasikan dengan andal.
Padahal, jika Anda memiliki akses shell ke server, Anda dapat menggunakan perintah shell untuk ZIP file. Itu sebenarnya, apa adanya Tar / GZip perintah khusus tidak.
Jika Anda menginginkannya dalam sekali jalan (zip-and-download), Anda harus menerapkan yang lebih perintah / ekstensi khusus yang rumit, yang membuka sesi sendiri untuk unduhan . Ini akan sangat mirip dengan Kemas file ke arsip ZIP dan unggah contoh. Kecuali, itu akan digunakan
Session.ExecuteCommand
untuk mengeksekusizip
(atau serupa) pada server jarak jauh.Anda dapat menulis ekstensi dalam bahasa apa pun yang Anda suka. PowerShell adalah bahasa skrip Windows yang paling mudah tersedia dengan dukungan .NET yang bagus (asli). Meskipun dapat dilakukan di Bash juga, Anda harus menggunakan skrip Bash lokal (Anda tidak dapat mengunduh file menggunakan skrip Bash jarak jauh). Dan tidak ada Bash di Windows secara default.
sumber
zip -r /var/www/html/dr.zip /var/www/html && scp /var/www/html/dr.zip USER@IP:/location && rm /var/www/html/dr.zip
.zip
tidak lebih atau kurang bermasalah darigzip
/tar
. Akses shell adalah batasannya. - Dan lagi, Anda tidak dapat menggunakan skrip / perintah Bash jauh untuk menarik file dari server ke Windows, jadi Anda tidak dapat menggunakanscp
dalam perintah khusus, seperti yang dieksekusi di server (tentu saja, kecuali jika Anda menjalankan server SSH pada mesin Windows lokal).scp
akan ada sesuatu yang lain (menggunakan WinSCP hal yang sama) untuk menarik file ke Windows)