1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.Options;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Http;
- using System.Threading.Tasks;
- using TEAMModelBI.Filter;
- using TEAMModelOS.Models;
- using TEAMModelOS.SDK;
- using TEAMModelOS.SDK.DI;
- using TEAMModelOS.SDK.Extension;
- using static TEAMModelOS.SDK.DI.AzureStorageBlobExtensions;
- namespace TEAMModelBI.Controllers.Core
- {
- [Route("blob")]
- [ApiController]
- public class BlobController : ControllerBase
- {
- private readonly AzureStorageFactory _azureStorage;
- private readonly IHttpClientFactory _clientFactory;
- private readonly AzureRedisFactory _azureRedis;
- private readonly AzureServiceBusFactory _serviceBus;
- private readonly DingDing _dingDing;
- private readonly Option _option;
- private readonly AzureCosmosFactory _azureCosmos;
- public IConfiguration _configuration { get; set; }
- public BlobController(AzureStorageFactory azureStorage, AzureServiceBusFactory serviceBus, IHttpClientFactory clientFactory, AzureRedisFactory azureRedis, IConfiguration configuration,
- DingDing dingDing,
- IOptionsSnapshot<Option> option, AzureCosmosFactory azureCosmos)
- {
- _azureStorage = azureStorage;
- _clientFactory = clientFactory;
- _serviceBus = serviceBus;
- _azureRedis = azureRedis;
- _configuration = configuration;
- _dingDing = dingDing;
- _option = option?.Value;
- _azureCosmos = azureCosmos;
- }
- /// <summary>
- /// BI顾问上传文件到指定的0-public
- /// </summary>
- /// <param name="file"></param>
- /// <returns></returns>
- [HttpPost("upload-public")]
- [AuthToken(Roles = "assist")]
- [RequestSizeLimit(102_400_000_00)]//最大10000m左右
- public async Task<IActionResult> UploadPublic([FromForm] IFormFile file)
- {
- var (id, _, _, school) = HttpContext.GetAuthTokenInfo();
- string fileExt = FileType.GetExtention(file.FileName).ToLower();
- if (ContentTypeDict.dict.ContainsKey($".{fileExt}"))
- {
- var url = await _azureStorage.UploadFileByContainer("0-public", file.OpenReadStream(), "school", $"{Guid.NewGuid()}.{fileExt}", false);
- return Ok(new { url });
- }
- else
- {
- return BadRequest();
- }
- }
- }
- }
|