Tiedostontarjoajan abstraktio Tiedostontarjoajat ovat abstraktiokerros tiedostojärjestelmän päällä. Sen pääkäyttöliittymä on IFileProvider. IFileProvider paljastaa menetelmät tiedostotietojen (IFileInfo), hakemistotietojen (IDirectoryContents) ja muutosilmoitusten asettamiseen (IChangeTokenin avulla).
IFileInfo-rajapinta tarjoaa menetelmiä ja ominaisuuksia yksittäisten tiedostojen ja hakemistojen käsittelyyn. Siinä on kaksi boolean-ominaisuutta, Exists ja IsDirectory, sekä kaksi ominaisuutta kahdelle profiilille, Name ja Length (per tavu), ja lisäksi mukana on LastModified date -ominaisuus. Voit myös lukea tiedoston sisältöä CreateReadStream-menetelmällä.
Tiedostontarjoajan toteutus IFileProviderista voi valita kolme toteutusta: fyysinen, upotettu ja komposiitti. Fyysistä tyyppiä käytetään tiedostojen käsittelyyn varsinaisessa järjestelmässä. Upotettua käytetään tiedostojen käsittelyyn, joka on upotettu kokoonpanoon. Yhdistetyyppi on yhdistelmä kahdesta ensimmäisestä menetelmästä.
PhysicalFileProvider PhysicalFileProvider tarjoaa pääsyn fyysiseen tiedostojärjestelmään. Se kapseloi System.IO.File-tyypin, joka kattaa kaikki polut hakemistoihin ja sen alihakemistoihin. Tämä laajuustyyppi rajoittaa pääsyä hakemistoihin ja sen alihakemistoihin, estäen laajuuden ulkopuolisia toimintoja pääsemästä tiedostojärjestelmään. Kun perustat tällaisen palveluntarjoajan, sinun on annettava sille hakemistopolku, jota palvelin voi käyttää pohjapolkuna kaikille tämän palveluntarjoajan tekemille pyynnöille (mikä rajoittaa pääsypyyntöjä polun ulkopuolella). ASP.NET Core -sovelluksessa voit luoda PhysicalFileProvider-palveluntarjoajan suoraan tai pyytää IFileProvider-rajapintaa käyttämällä valmistajariippuvuuden injektiota ohjaimessa ja palvelussa. Jälkimmäinen johtaa usein joustavampiin ja helpommin testattavia.
Fyysisen tiedostopalveluntarjoajan luominen on itse asiassa hyvin yksinkertaista, vain toteuta se ja anna sille fyysinen reitti. Voit sitten selata sisältöä sen hakemistossa tai tarjota alipolkuja saadaksesi tietoa tietystä tiedostosta.
Muokkaa Startup-luokan ConfigureServices()-metodia rekisteröimään palvelut, jotka tarvitaan paikallisten tiedostojen käyttämiseen, ja lisää ne sitten middlewareen constructor-injektion avulla middlewareen, jotta voit hallita tiedostojen pääsypolkua yhdessä paikassa (eli kun sovellus käynnistyy)
|