1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ufangx-FileServices

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Файловые службы

Управление файлами, сверхбольшие файлы для загрузки, поддержка серверной части для возобновления передачи, клиентский H5-загрузчик, поддержка одновременной загрузки нескольких файлов, поддержка возобновления передачи.

Использование

  1. Регистрация служб:
public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    services.AddFileServices(opt => {
        opt.DefaultScheme = "documents";//по умолчанию это схема обработки документов
        opt.AddAuthenticationScheme(CookieAuthenticationDefaults.AuthenticationScheme);//имя схемы аутентификации
        //правила именования новых файлов при сохранении
        opt.RuleOptions = new Ufangx.FileServices.Models.FileNameRuleOptions()
        {
            Rule = Ufangx.FileServices.Models.FileNameRule.Custom,//пользовательское правило именования, необходимо предоставить пользовательский метод
            Custom = originFileName => string.Format("{0:yyyyMMddHHmmss}_xx_{1}", DateTime.Now, originFileName),
            Format = "xxx_{0:yyyyMMddHHmmss}"//эта конфигурация используется вместе с Rule=FileNameRule.Date, по умолчанию: {0:yyyyMMddHHmmss}
        };

    })
    //схема обработки фотографий
    .AddScheme("pictures", opt => {
        opt.StoreDirectory = "wwwroot/pictures";//каталог хранения изображений, обычно не используется при использовании локальной файловой системы
        opt.SupportExtensions = new string[] { ".jpg", ".png" };//поддерживаемые расширения
        opt.HandlerType = null;//тип обработки файла после успешной загрузки, этот тип должен реализовывать интерфейс IFileHandler
        opt.LimitedSize = 1024 * 1024 * 4;//максимальный размер файла в байтах
    })
    .AddScheme("documents",opt => opt.StoreDirectory = "wwwroot/documents")//схема обработки документов
    .AddScheme<VideoService>(name:"videos",
    storeDirectory:"wwwroot/videos",//каталог хранения видео, обычно не используется при использовании локальной файловой системы
    supportExtensions: new string[] { ".avi", ".wmv", ".mpg", ".mpeg", ".mov", ".rm", ".swf", ".flv", ".mp4" }
    LimitedSize:1024*1024*500)//схема обработки видео
    //.AddLocalServices(o => o.StorageRootDir = hostEnvironment.ContentRootPath)//локальная файловая система, файлы находятся локально
    //сервисы хранения Qiniu
    .AddQiniuFileService(opt => {
        opt.AccessKey = "";//
        opt.SecretKey = "";
        opt.BasePath = "";
        opt.Bucket = "";
        opt.Domain = "";
        opt.ChunkUnit = Qiniu.Storage.ChunkUnit.U1024K;
        opt.Zone = "ZoneCnEast";

    });
    //информация о возобновлении передачи по умолчанию хранится в кэше, через services.AddDistributedRedisCache настраивается кэш Redis для постоянного хранения
    //или AddQiniuFileService<CustomResumableInfoService> или AddLocalServices<CustomResumableInfoService>, чтобы указать тип сервиса информации о возобновлении передачи
}
  1. Использование промежуточного программного обеспечения:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
   //。。。。其他代码

   app.UseFileServices("/FileServices");
   //URL для загрузки файлов: /FileServices/uploader
   //создание информации о возобновлении:
   //GET /FileServices/uploader?fileSize=125829120&blobSize=4194304&blobCount=30&fileName=xxx.zip&fileType=xxxx
   //request headers
   //scheme:documents
   //response
   //{"index":0,"key":"информация о возобновлении"}
   //получение информации о возобновлении:
   //GET /FileServices/uploader?key=информация о возобновлении
   //request headers
   //scheme:documents
   //response
   //{"index":12,"key":"информация о возобновлении"}
   //удаление информации о возобновлении:
   //DELETE /FileServices/uploader?key=информация о возобновлении
   //response
   //true
   //загрузка данных фрагментов
   //POST  /FileServices/uploader
   //Form
   //blobIndex:12 текущий индекс фрагмента
   //key:информация о возобновлении
   //Form.Files==1 должен быть один файл формы, представляющий текущий фрагмент данных
   //request headers
   //scheme:documents
   //загрузить файл
   //POST  /FileServices/uploader
   //Form.Files>0 должно быть более одного файла
   //request headers
   //scheme:documents

   //。。。。другие коды
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Управление файлами, загрузка сверхбольших файлов, поддержка серверной части для частичной загрузки, клиентский загрузчик H5, поддерживает одновременную загрузку нескольких файлов, поддерживает частичную загрузку. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ufangx-FileServices.git
git@api.gitlife.ru:oschina-mirror/ufangx-FileServices.git
oschina-mirror
ufangx-FileServices
ufangx-FileServices
master