Failų teikėjo abstrakcija Failų teikėjai yra abstrakcijos sluoksnis failų sistemos viršuje. Pagrindinė jo sąsaja yra IFileProvider. "IFileProvider" atskleidžia failo informacijos gavimo (IFileInfo), katalogo informacijos (IDirectoryContents) ir pranešimų apie pakeitimus nustatymo metodus (naudojant IChangeToken).
IFileInfo sąsaja pateikia metodus ir ypatybes, kaip manipuliuoti atskirais failais ir katalogais. Jame yra dvi Bulio logikos ypatybės, Egzistuoja ir IsDirectory, ir dvi dviejų profilių ypatybės, Pavadinimas ir Ilgis (vienam baitui), taip pat yra datos ypatybė LastModified. Taip pat galite perskaityti failo turinį naudodami "CreateReadStream" metodą.
Failų teikėjo diegimas Galima rinktis iš trijų "IFileProvider" diegimų: fizinio, įdėtojo ir sudėtinio. Fizinis tipas naudojamas prieigai prie failų tikrojoje sistemoje. Įterptas naudojamas prieigai prie failų, įterptų į rinkinį. Junginio tipas yra pirmųjų dviejų metodų derinys.
Fizinis failų teikėjas PhysicalFileProvider suteikia prieigą prie fizinės failų sistemos. Jame yra System.IO.File tipas, apimantis visus katalogo ir jo pakatalogių kelius. Šio tipo aprėptis apriboja prieigą prie katalogo ir jo pakatalogių, neleidžiant operacijoms, nepriklausančioms aprėpčiai, pasiekti failų sistemą. Kurdami tokį teikėją, turite pateikti jam katalogo kelią, kurį serveris gali naudoti kaip pagrindinį kelią visoms šio teikėjo užklausoms (kuris apriboja prieigos užklausas už kelio ribų). "ASP.NET Core" programoje galite tiesiogiai sukurti "PhysicalFileProvider" teikėją arba galite paprašyti "IFileProvider" sąsajos naudodami konstruktoriaus priklausomybės injekciją valdiklyje ir paslaugoje. Pastarasis lemia sprendimus, kurie dažnai yra lankstesni ir lengviau išbandomi.
Sukurti PhysicalFileProvider iš tikrųjų yra labai paprasta, tiesiog materializuoti jį ir perduoti jį fizinį kelią. Tada galite pereiti turinį per jo katalogą arba pateikti antrinius kelius, kad gautumėte informacijos apie konkretų failą.
Modifikuokite Startup klasės ConfigureServices() metodą, kad užregistruotumėte paslaugas, reikalingas prieigai prie vietinių failų, ir tada pridėkite jas prie tarpinės programinės įrangos per konstruktoriaus injekciją į tarpinę programinę įrangą, kad galėtumėte valdyti failų prieigos kelią vienoje vietoje (t. y. paleidus programą)
|