Абстракція провайдера файлів Провайдери файлів — це шар абстракції поверх файлової системи. Його основний інтерфейс — IFileProvider. IFileProvider надає методи отримання інформації про файл (IFileInfo), інформації про каталог (IDirectoryContents) та встановлення сповіщень про зміни (за допомогою IChangeToken).
Інтерфейс IFileInfo надає методи та властивості для маніпулювання окремими файлами та каталогами. Він має дві булеві властивості — Exists і IsDirectory, а також дві властивості для двох профілів — Name і Length (на байт), а також включає властивість дати LastModified. Ви також можете прочитати вміст файлу за допомогою методу CreateReadStream.
Реалізація File Provider Існує три реалізації IFileProvider на вибір: фізичну, вбудовану та композитну. Фізичний тип використовується для доступу до файлів у реальній системі. Вбудований режим використовується для доступу до файлів, вбудованих у асемблер. Складний тип є комбінацією перших двох методів.
PhysicalFileProvider PhysicalFileProvider надає доступ до фізичної файлової системи. Він інкапсулює тип файлу System.IO.File, який обмежує всі шляхи до каталогу та його підкаталогів. Такий тип області обмежує доступ до каталогу та його підкаталогів, запобігаючи операціям поза межами сфери доступу до файлової системи. Під час створення такого провайдера потрібно надати йому шлях до каталогу, який сервер може використовувати як базовий для всіх запитів, зроблених цим провайдером (що обмежує запити на доступ поза межами шляху). У ASP.NET Core застосунку ви можете безпосередньо інстанцювати провайдера PhysicalFileProvider або запитати інтерфейс IFileProvider, використовуючи ін'єкцію залежностей конструктора в контролері та сервісі. Останнє призводить до рішень, які часто є більш гнучкими та легшими для тестування.
Створення PhysicalFileProvider насправді дуже просте — просто втілити його і передати фізичний шлях. Потім ви можете проходити контент через його каталог або надавати підшляхи, щоб отримати інформацію про конкретний файл.
Модифікуйте метод ConfigureServices() класу Startup, щоб зареєструвати сервіси, необхідні для доступу до локальних файлів, а потім додайте їх до проміжного програмного забезпечення через ін'єкцію конструктора в проміжне програмне забезпечення, щоб контролювати шлях доступу до файлів в одному місці (тобто коли запуск застосунку)
|