Failipakkuja abstraktsioon Failipakkujad on failisüsteemi peal asuv abstraktsioonikiht. Selle peamine liides on IFileProvider. IFileProvider pakub meetodeid failiinfo (IFileInfo), kataloogiinfo (IDirectoryContents) ja muudatuste teavituste seadistamiseks (kasutades IChangeTokenit).
IFileInfo liides pakub meetodeid ja omadusi üksikute failide ja kataloogide manipuleerimiseks. Sellel on kaks boole'i omadust, Exists ja IsDirectory, ning kaks omadust kahe profiili jaoks, Nimi ja Pikkus (baidi kohta), ning sisaldab ka LastModified kuupäeva omadust. Faili sisu saab lugeda ka CreateReadStream meetodi abil.
Failipakkuja rakendus IFileProvideril on valida kolme rakenduse vahel: füüsiline, manustatud ja komposiitlahendus. Füüsilist tüüpi kasutatakse failide ligipääsuks tegelikus süsteemis. Manustatud kasutatakse selleks, et pääseda ligi assamblees olevatele failidele. Ühendtüüp on esimese kahe meetodi kombinatsioon.
PhysicalFileProvider PhysicalFileProvider võimaldab juurdepääsu füüsilisele failisüsteemile. See kapseldab System.IO.File tüübi, mis hõlmab kõiki teid kataloogi ja selle alamkataloogide juurde. Selline ulatus piirab ligipääsu kataloogile ja selle alamkataloogidele, takistades väljaspool ulatust olevatel operatsioonidel failisüsteemile ligipääsu. Sellise teenusepakkuja loomisel pead talle andma kataloogitee, mida server saab kasutada baasteena kõigi selle pakkuja päringute jaoks (mis piirab juurdepääsu päringuid väljaspool teed). ASP.NET Core rakenduses saad PhysicalFileProvider teenusepakkuja otse instantsida või taotleda IFileProvider liidest, kasutades konstruktori sõltuvuse süstimist kontrolleris ja teenuses. Viimane viib lahendusteni, mis on sageli paindlikumad ja kergemini testitavad.
Füüsilise failiteenuse loomine on väga lihtne – lihtsalt realiseeri see ja anna sellele füüsiline tee. Seejärel saad sisu läbi selle kataloogi navigeerida või lisada alamteid, et saada infot konkreetse faili kohta.
Muuda Startup-klassi ConfigureServices() meetodit, et registreerida teenused, mis on vajalikud kohalike failide kasutamiseks, ja lisa need seejärel middleware'i konstruktori süstimise kaudu middleware'i, et saaksid kontrollida failide ligipääsuteed ühes kohas (st rakenduse käivitumisel)
|