Python SFTP: Cara Mengakses Server SFTP Menggunakan PYSFTP – Codewithaden

SFTP dikenal sebagai Protokol Transfer File SSH dan juga dikenal sebagai Protokol transfer file yang aman. SFTP adalah protokol jaringan yang menyediakan akses file, transfer, dan manajemen file melalui aliran data yang andal.

Python Sftp

Python pysftp Modul adalah antarmuka sederhana ke SFTP. Ini menawarkan abstraksi tingkat tinggi dan rutinitas berbasis tugas untuk menangani kebutuhan SFTP. Namun, protokol SFTP tidak mendukung otentikasi dan keamanan; Ia mengharapkan protokol yang mendasarinya untuk mengamankannya. Akibatnya, SFTP paling banyak digunakan sebagai Ssh Subsistem Implementasi Protokol Versi 2, dirancang oleh kelompok kerja yang sama.

Mari kita menginstal sftp modul pysftp

Instal pysftp

pip install pysftp

# or 

python3 -m pip install pysftp 

Tergantung pada versi Python dan PIP Anda, itu akan menginstal di sistem Anda.

Jika Anda tidak tahu cara meningkatkan PIP, lihat Tingkatkan Pip memandu.

Cara mengakses server sftp menggunakan pysftp

Anda dapat mencantumkan konten direktori menggunakan pysftp dalam python. Untuk itu, Anda membutuhkan nama host, nama pengguna, dan kata sandi Anda.

Maka Anda perlu beralih dari direktori menggunakan salah satu CWD atau chdir metode dan berikan direktori jarak jauh sebagai argumen pertama.

import pysftp

myHostname = "newblog.com"
myUsername = "root"
myPassword = "root"

with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword) as sftp:
    print("Connection succesfully stablished ... ")

    # Switch to a remote directory
    sftp.cwd('/var/www/vhosts/')

    # Obtain structure of the remote directory '/var/www/vhosts'
    directory_structure = sftp.listdir_attr()

    # Print data
    for attr in directory_structure:
        print(attr.filename, attr)

# connection closed automatically at the end of the with statement
 

Tentu saja, ini adalah server dummy yang tidak ada. Namun, dalam kehidupan nyata, Anda harus menggunakan variabel lingkungan untuk mengambil kredensial aktual dalam file apa pun untuk alasan keamanan dan tidak menempatkan semua kredensial dalam file individual. Selalu letakkan di dalam file variabel lingkungan. Misalnya, .env mengajukan.

Sekarang, mari kita lihat apa yang terjadi. Kode di atas juga sama untuk Anda, Anda harus memasukkan kredensial Anda, dan kode akan bekerja untuk Anda.

Pertama, kami telah mengimpor pysftp modul dan kemudian disediakan nama host saya , nama myusern , dan MyPassword .

Lalu kami telah menggunakan Python dengan pernyataan Untuk membuka koneksi aman ke server jarak jauh dengan memberikan nama host, nama pengguna, dan kata sandi. Jika berhasil, kami akan mengganti direktori jarak jauh untuk mengambil daftar dan mencetak satu per satu di konsol.

Daftar ini dalam urutan yang sewenang -wenang. Itu tidak termasuk entri unik ‘.’ Dan ‘..’. Yang dikembalikan Sftpattributes Objek masing -masing akan memiliki bidang tambahan: nama panjang , yang mungkin berisi string yang diformat dari atribut file dalam format UNIX. Konten string akan tergantung pada server SFTP.

Cara mengunggah file menggunakan pysftp di python

Untuk mengunggah file di server jarak jauh melalui Sftp menggunakan pysftp , Anda perlu menggunakan metode sftp.put () dari klien SFTP. Metode put diharapkan sebagai argumen pertama jalur lokal relatif atau absolut dari file yang ingin Anda unggah dan, sebagai argumen kedua, jalur jarak jauh di mana file harus diunggah.

import pysftp

myHostname = "newblog.com"
myUsername = "root"
myPassword = "root"

with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword) as sftp:
    print("Connection succesfully stablished ... ")

    # Define a file that you want to upload from your local directorty
    # or absolute "/Users/krunal/Desktop/code/pyt/app.txt"
    localFilePath = './app.txt'

    # Define the remote path where the file will be uploaded
    remoteFilePath = '/var/backups/app.txt'

    # Use put method to upload a file
    sftp.put(localFilePath, remoteFilePath)

# connection closed automatically at the end of the with statement
 

Kami pertama kali membuat koneksi yang aman dalam kode ini dan kemudian menentukan dua jalur file.

  1. localfilepath : Ini adalah jalur ke file lokal.
  2. Remotefilepath : Ini adalah jalur ke file jarak jauh.

Kemudian kami telah menggunakan metode sftp.put () untuk mengunggah file ke server.

Cara mengunduh file jarak jauh menggunakan pysftp

Di bagian di atas, kami telah melihat cara mengunggah file. Sekarang mari kita lihat cara mengunduh file.

Untuk mengunduh file jarak jauh dari server menggunakan pysftp, kita harus membuka koneksi dan dari instance SFTP dan menggunakan metode GET yang mengharapkan jalur file jarak jauh yang akan diunduh, dan argumen kedua sebagai jalur lokal di mana file harus disimpan.

import pysftp

myHostname = "newblog.com"
myUsername = "root"
myPassword = "root"

with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword) as sftp:
    print("Connection succesfully stablished ... ")

    # Define the remote path file path
    remoteFilePath = '/var/backups/app.txt'

    # Define a directory in which you have to save the file.
    # or absolute "/Users/krunal/Desktop/code/pyt/app.txt"
    localFilePath = './app.txt'

    # Use get method to download a file
    sftp.get(remoteFilePath, localFilePath)

# connection closed automatically at the end of the with statement
 

Kami telah mendefinisikan koneksi dalam kode di atas dan kemudian menentukan dua jalur file.

  1. Remotefilepath : Ini adalah jalur di mana file berada.
  2. localfilepath : Ini adalah jalur di mana file akan diunduh.

Pada langkah berikutnya, kami telah menggunakan metode GET () untuk mengunduh file.

Cara menghapus file menggunakan pysftp di python

Anda dapat menghapus file menggunakan PYSFTP menggunakan metode sftp.remove (). Metode Remove () mengharapkan jalur absolut ke file jarak jauh sebagai argumen pertama.

import pysftp

myHostname = "newblog.com"
myUsername = "root"
myPassword = "root"

with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword) as sftp:
    print("Connection succesfully stablished ... ")

    # Define the remote path file path
    removeFilePath = '/var/backups/app.txt'

    sftp.remove(removeFilePath)

# connection closed automatically at the end of the with statement
 

Dalam kode ini, kami telah membuka koneksi dan kemudian menentukan a Hapus FilePath variabel, yang berisi filepath dari file yang perlu dihapus.

Kemudian kami telah menggunakan metode sftp.remove () untuk menghapus file dari server jarak jauh.

Modul PYSFTP memiliki berbagai metode yang dapat Anda gunakan untuk melakukan banyak hal, seperti menangani izin, dll., Jadi jangan lupa untuk memeriksa Situs web dokumentasi resmi di sini

Itu untuk tutorial ini.

Lihat juga

Cara membuka file dalam python

Cara membaca file dalam python

Cara menulis file dalam python

Cara menyalin file dalam python

Cara mengimpor file dalam python

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *