Cara Mudah Mengakses File SharePoint dengan Python

Artikel ini akan berisi tentang cara mendapatkan daftar atau list file ataupun folder dari microsoft sharepoint menggunakan script Python dengan bantuan SDK Client Microsoft Graph API Library. Adapun yang perlu disiapkan dalam project ini adalah sebagi berikut:

Mendapatkan Daftar Situs yang Tersedia

Langkah pertama yang kita lakukan adalah mendapatkan daftar situs yang tersedia pada workspace kita. Skip langkah ini jika sudah mengetahui situs mana yang akan digunakan untuk bekerja.

Fungsi untuk mendapatkan daftar situs yang tersedia adalah sebagai berikut:

async def get_sites():
    try:
        sites = await client.sites.get()
        for site in sites.value:
            print(f"Site: {site.name} ___________ {site.id}")
    except Exception as e:
        print(f"Failed to get sites: {e}")

Script di atas akan mengeluarkan output nama situs dan id situs di terminal. ID situs dapat kita gunakan pada tahap berikutnya.

Mendapatkan Drive ID dari Situs

Setelah kita mendpatkan id situs, selanjutnya kita perlu mendapatkan ID Drive yang akan digunakan untuk bekerja pada tahap berikutnya. Fungsinya adalah sebagai berikut:

site_id = "ID_SITUS_YANG_DIDAPAT_SEBELUMNYA"
async def get_drive_by_site_id():
    try:
        drives = await client.sites.by_site_id(site_id).drives.get()
        for drive in drives.value:
            print(f"Drive: {drive.name} ___________ {drive.id}")
    except Exception as e:
        print(f"Failed to get drives: {e}")

Script itu akan menampilkan output nama drive dan id drive di terminal saat dijalankan. Id drive bisa digunakan untuk bekerja pada tahapan berikutnya.

Mendapatkan ID Folder Root

Setelah mendapatkan id drive, kita bisa mendapatkan id folder root atau induk menggunakan fungsi berikut:

drive_id = "ID_DRIVE_YANG_DIDAPAT_SEBELUMNYA"
async def get_folder_by_drive_id():
    try:
        folder = await client.drives.by_drive_id(drive_id).root.get()
        print(f"Folder: {folder.name} ___________ {folder.id}")
    except Exception as e:
        print(f"Failed to get folder: {e}")

Script ini akan menampilkan nama folder dan id folder di dalam terminal.

Mendapatkan List File dan Folder dari Sebuah Folder

Setelah kita memiliki Drive ID dan Folder ID selanjutnya kita bisa mendapatkan isi (children) dari folder tersebut menggunakan script berikut ini:

drive_id = "ID_DRIVE_YANG_DIDAPAT_SEBELUMNYA"
folder_id = "ID_FOLDER_YANG_DIDAPAT_SEBELUMNYA"
async def list_files_in_folder():
    try:
        drive_items = await client.drives.by_drive_id(drive_id).items.by_drive_item_id(folder_id).children.get()
        for item in drive_items.value:
            print(f"Item: {item.name} - {item.id}")
    except Exception as e:
        print(f"Failed to process folder {folder_id}: {e}")

Fungsi ini akan menampilkan daftar file dan folder yang ada di dalam suatu folder yang IDnya dimasukkan pada variabel folder_id.

Contoh Cara Penggunaan Fungsi

Kita bisa mencoba fungsi-fungsi yang disampaikan menggunakan asyncio. Contohnya adalah sebagai berikut:

import asyncio

# asyncio.run(list_files_in_folder())
# asyncio.run(get_folder_by_drive_id())
# asyncio.run(get_drive_by_site_id(site_id))
asyncio.run(get_sites())

Script di atas menjalankan fungsi get_sites() melalui asyncio.run(). Jika ingin mencoba fungsi yang lain tinggal hapus tanda # di awal baris.

Demikian artikel mengenai cara Mendapatkan List File dari Microsoft SharePoint Menggunakan Python. Semoga bermanfaat

Photo of author

Ahmad Budairi

Ahmad Budairi, S.Pd. | Seorang Web Developer sekaligus kader Gerakan Pemuda Ansor yang sangat suka menulis artikel. Saya di sini akan lebih banyak menulis seputar Laravel, vue, vuetify, inertiajs, dan hal lain yang berhubungan dengan web development.Kontak: budairi.contact[et]gmail[dot]com