Upload, Edit на файлове в ASP.NET CORE проект
Здравейте колеги, значи наскоро започнах един личен ASP.NET core проект и стигнах до един проблем. Приложението работи, или по скоро трябва да работи, с файлове, качва архив, резархивира на файловата система, обработва ги и ги връща като архив на потребителя при заявка. Бих искал обаче да пазя файловете. Въпросът ми е къде да съхранявам файловете, като се има предвид, че използвам (layered architecture) и със сигурност няма да ги съхранявам в ".Web" проекта и файловете не са за всеки (няма да ползвам "static files").
Здрасти,
Нека да кажем, че искам да ги извличам посредством четене на файл през моето приложение, тогава в какъв проект мога да ги съхранявам, "Class Library(.NET Standard)" или има нещо което повече подхожда за случая. Не съм сигурен дали ще има проблеми след като проекта се хостне, нали "class library" е всъщност "dll" и не ми е ясно дали съдържанието на "dll" може да се променя докато се използва апликацията (Edit, Update на файлове).
П.С. Благодаря за предишния отговор
Привет,
DLL ще ти е service layer-a, в който ти е C# кода, с който качваш и модифицираш файлове. Например FileService. Файловете, които се качват са си с разширението, с което ги качват хората и в съвсем различна папка, например D:\\Uploads\\. Задачата на FileService ще е да:
void Upload(byte[]) - приема масива от байтове на файла, който се иска да бъде качен, изпратени по HTTP, и ги записва като SomeUniqueFileName.zip в D:\\Uploads\\
byte[] Get(string) - приема уникално име на файл, търси го в D:\\Uploads\\ прочита му съдържанието и го изпраща към този, който го е повикал, примерно Controller, който ще го stream-не към клиента с подходящите headers (e.g. Content-disposition)
void Edit(string, byte[]) - приема уникално име на файл и масив от байтове - съдържанието на файла изпратено по HTTP. Записва ги под получения първи аргумент в D:\\Uploads\\, като ефективно замества файл с такова име, който е съществувал преди.
Вече ми е ясно, благодаря ти колега :)