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:
- Tenant ID, Client ID, dan Client Secret yang bisa didapat melalui Microsoft Entra. Baca artikel Cara Mendapatkan Share Link OneDrive Semua File untuk penjelasan singkatnya.
- Install msgraph-sdk pada virtual environment. Contoh instalasi menggunakan pip sebagai berikut:
pip install msgraph-sdk
- Inisiasi client service menggunakan SDK tersebut. Caranya bisa lihat di artikel sebelumnya bagian Inisiasi Client Service Microsoft Graph.
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