File
API Administrasi IIS menyediakan sekumpulan API file untuk berinteraksi langsung dengan sistem file. Ini berarti API dapat digunakan secara lokal atau jarak jauh untuk menyebarkan konten, mengedit, atau memeriksa apakah file sudah diperbarui.
Titik akhir /api/files mengekspos metadata dan konten file dan direktori pada komputer. File yang tersedia melalui api ini terbatas pada yang ditentukan di bagian konfigurasi file dari file appsettings.json . Mengkueri titik akhir /api/files tanpa menentukan direktori akan mencantumkan lokasi yang ada dalam konfigurasi. Lokasi ini mewakili akar semua jalur sistem file yang tersedia melalui API. File dapat dibuat, dihapus, dan dimanipulasi dengan kata kerja posting HTTP standar, hapus, dan patch selama jalur file memiliki klaim yang diperlukan untuk melakukan operasi.
File
{
"name": "iisstart.png",
"id": "{id}",
"type": "file",
"physical_path": "C:\\inetpub\\wwwroot\\iisstart.png",
"exists": "true",
"size": "98757",
"created": "2017-01-09T18:08:33.5130112Z",
"last_modified": "2017-01-09T17:48:13.6180477Z",
"last_access": "2017-01-09T17:48:13.6180477Z",
"e_tag": "1d26aa08c67ed45",
"parent": {
"name": "wwwroot",
"id": "{id}",
"type": "directory",
"physical_path": "C:\\inetpub\\wwwroot"
},
"claims": [
"read",
"write"
]
}
Direktori
{
"name": "wwwroot",
"id": "{id}",
"type": "directory",
"physical_path": "C:\\inetpub\\wwwroot",
"exists": "true",
"created": "2017-01-09T18:08:33.1380257Z",
"last_modified": "2017-01-30T17:01:15.2619212Z",
"last_access": "2017-01-30T17:01:15.2619212Z",
"total_files": "7",
"parent": {
"name": "inetpub",
"id": "a-nA1LZCBZ9jIqxr6e2uWg",
"type": "directory",
"physical_path": "C:\\inetpub"
},
"claims": [
"read",
"write"
]
}
Titik akhir /api/webserver/files mengekspos struktur file virtual yang dibuat oleh IIS. Semua sumber daya file di bawah titik akhir ini milik beberapa situs web dan jalur file tersebut relatif terhadap situs web miliknya. Ini memungkinkan situs web diperlakukan sebagai akar sistem file, yang diinginkan dalam skenario server web. Direktori virtual disertakan di antara direktori normal untuk tampilan lengkap hierarki file virtual situs web.
Semua file server web memiliki referensi ke file_info yang merupakan metadata file yang dapat diperoleh dari titik akhir /api/files .
Web File
{
"name": "iisstart.png",
"id": "{id}",
"type": "file",
"path": "/iisstart.png",
"parent": {
"name": "",
"id": "{id}",
"type": "application",
"path": "/"
},
"website": {
"name": "Default Web Site",
"id": "{id}",
"status": "started"
},
"file_info": {
"name": "iisstart.png",
"id": "{id}",
"type": "file",
"physical_path": "C:\\inetpub\\wwwroot\\iisstart.png"
}
}
Direktori Web
{
"name": "imgs",
"id": "{id}",
"type": "directory",
"path": "/imgs",
"parent": {
"name": "",
"id": "{id}",
"type": "application",
"path": "/"
},
"website": {
"name": "Default Web Site",
"id": "{id}",
"status": "started"
},
"file_info": {
"name": "imgs",
"id": "{id}",
"type": "directory",
"physical_path": "C:\\inetpub\\wwwroot\\imgs"
}
}
API mendukung penyalinan dan pemindahan file melalui titik akhir /api/files/copy dan /api/files/move . Proses penyalinan file dilakukan dengan menjalankan permintaan POST ke API yang menjelaskan operasi penyalinan yang diinginkan.
POST
{
"name":"{optional name of the destination file}",
"file": {
"id": "{id property of the file to copy}"
},
"parent": {
"id": "{id property of the directory to copy to}"
}
}
Sumber daya di bawah rute /api/files hanya berisi metadata untuk file. Untuk memanipulasi konten file, seseorang harus menggunakan rute /api/files/content/{id} . Rute ini menggunakan jenis konten application/octet-stream untuk mengirimkan data. Melakukan permintaan GET ke URL konten file akan mengulangi byte mentah file. Operasi ini mendukung permintaan rentang HTTP sehingga file dapat diunduh dalam gugus. Melakukan permintaan PUT ke URL konten file akan menggantikan konten file dengan isi permintaan. Operasi ini mendukung permintaan rentang konten HTTP untuk mengaktifkan manipulasi akses acak file.
Unduh file ke-2 500 byte
GET /api/files/content/{id}
Access-Token: Bearer {Access-Token}
Range: bytes=500-999
Mengedit 2nd 500 byte dari file 1000 byte
PUT /api/files/content/{id}
Access-Token: Bearer {Access-Token}
Content-Range: bytes 500-999/1000
Content-Length: 500
File dapat diunduh melalui titik akhir /api/files/content API. Kelemahan dari titik akhir ini adalah karena berada di bawah rute api , ia memerlukan token akses. Ini berarti bahwa file tidak dapat diunduh melalui browser. Titik akhir /api/files/download memungkinkan pembuatan tautan unduhan sementara. Tautan unduhan ini unik, dihasilkan secara acak, dan tidak memerlukan token akses. Tautan unduhan yang dihasilkan berbentuk /downloads/{random_sequence}. Parameter time-to-live (ttl) opsional tersedia saat membuat tautan unduhan untuk menentukan berapa lama tautan unduhan harus tersedia. Defaultnya adalah lima detik.
Saat unduhan dibuat, tautan untuk unduhan dikembalikan di header Lokasi respons HTTP.
POST
{
"file": {
"id": "{id of the file to download}"
},
"ttl": "10000"
}
API file dapat digunakan untuk mengelola file yang terletak di berbagi file. Untuk mengaktifkan fungsionalitas ini, berbagi file harus mengizinkan izin sistem file yang diperlukan kepada prinsipal yang mewakili komputer tempat API berjalan. Sebagai contoh, misalkan ada konten bersama yang terletak di \\share\images dan kami ingin mengizinkan API berjalan di server web bernama web-prod-1 untuk menghitung file-file ini. Untuk memperbolehkan ini, administrator harus mengubah ACL direktori \\share\images untuk mengizinkan akses READ ke objek Direktori Aktif web-prod-1 . Setelah ini dilakukan, layanan pada komputer web-prod-1 akan dapat mengakses direktori ini, membaca file, lalu mengeksposnya melalui API.
Akses sistem file API terbatas pada sekumpulan folder akar, yang disebut lokasi, yang ditentukan dalam file appsettings . Lokasi ini muncul sebagai akar dari perspektif API file tetapi pada drive fisik mereka mungkin merupakan folder berlapis, akar drive, atau bahkan berbagi jaringan. Untuk setiap lokasi, akses baca dan tulis dikontrol secara independen. Jalur apa pun pada sistem file yang tidak termasuk dalam lokasi tidak akan terlihat oleh API sistem file.
Dimulai dengan versi 2.2.0, pengaturan lokasi dapat diakses melalui titik akhir /api/files/locations . Titik akhir ini dikunci ke pengguna di grup pengguna pemilik API. Ini berarti Autentikasi Windows diperlukan untuk mengakses titik akhir lokasi. Menambahkan atau menghapus lokasi akan menambahkan atau menghapus akses sistem file dari API. Titik akhir ini mendukung GET, PATCH, POST, dan DELETE untuk membuat, mengedit, dan menghapus lokasi yang ada. Lokasi pengeditan tidak berpengaruh pada file fisik, itu hanya memanipulasi tampilan API dari sistem file.
Konfigurasi Lokasi Default
{
"locations": [
{
"alias": "inetpub",
"id": "{id}",
"path": "C:\\inetpub",
"claims": [
"read"
]
}
]
}