Failu nodrošinātāja abstrakcija Failu nodrošinātāji ir abstrakcijas slānis failu sistēmas augšpusē. Tās galvenā saskarne ir IFileProvider. IFileProvider atklāj failu informācijas (IFileInfo), direktorija informācijas (IDirectoryContents) un izmaiņu paziņojumu iestatīšanas metodes (izmantojot IChangeToken).
IFileInfo interfeiss nodrošina metodes un rekvizītus, lai manipulētu ar atsevišķiem failiem un direktorijiem. Tam ir divi Būla rekvizīti, Exists un IsDirectory, un divi rekvizīti diviem profiliem, Nosaukums un Garums (uz baitu), kā arī ietver datuma rekvizītu LastModified. Faila saturu var arī nolasīt, izmantojot CreateReadStream metodi.
Failu nodrošinātāja ieviešana Ir trīs IFileProvider ieviešanas, no kurām izvēlēties: fiziskā, iegultā un kompozīta. Fiziskais tips tiek izmantots, lai piekļūtu failiem faktiskajā sistēmā. Iegults tiek izmantots, lai piekļūtu failiem, kas iegulti montāžā. Savienojuma veids ir pirmo divu metožu kombinācija.
Fizisko failu nodrošinātājs PhysicalFileProvider nodrošina piekļuvi fiziskajai failu sistēmai. Tas ietver System.IO.File tipu, kas aptver visus ceļus uz direktoriju un tā apakšdirektorijiem. Šāda veida tvērums ierobežo piekļuvi direktorijam un tā apakšdirektorijām, neļaujot operācijām, kas atrodas ārpus tvēruma, piekļūt failu sistēmai. Instancējot šādu pakalpojumu sniedzēju, tam ir jānorāda direktorija ceļš, ko serveris var izmantot kā pamatceļu visiem šī nodrošinātāja pieprasījumiem (kas ierobežo piekļuves pieprasījumus ārpus ceļa). ASP.NET Core lietojumprogrammā varat tieši izveidot PhysicalFileProvider nodrošinātāju vai pieprasīt IFileProvider interfeisu, izmantojot konstruktora atkarības injekciju kontrolierī un pakalpojumā. Pēdējais rezultāts ir risinājumi, kas bieži ir elastīgāki un vieglāk testējami.
PhysicalFileProvider izveide patiesībā ir ļoti vienkārša, vienkārši materializējiet to un nododiet tai fizisku ceļu. Pēc tam varat šķērsot saturu caur tā direktoriju vai norādīt apakšceļus, lai iegūtu informāciju par konkrētu failu.
Modificējiet startēšanas klases ConfigureServices() metodi, lai reģistrētu pakalpojumus, kas nepieciešami, lai piekļūtu vietējiem failiem, un pēc tam pievienojiet tos starpprogrammatūrai, izmantojot konstruktora injekciju starpprogrammatūrā, lai jūs varētu kontrolēt failu piekļuves ceļu vienuviet (t.i., startējot lietojumprogrammu)
|