|
@@ -82,9 +82,9 @@ namespace TEAMModelOS.Controllers
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
- [HttpPost("analysis-pptx")]
|
|
|
|
|
|
+ [HttpPost("parse-pptx")]
|
|
[RequestSizeLimit(102_400_000_00)] //最大10000m左右
|
|
[RequestSizeLimit(102_400_000_00)] //最大10000m左右
|
|
- public async Task<IActionResult> AnalysisPPTX(JsonElement request)
|
|
|
|
|
|
+ public async Task<IActionResult> ParsePPTX(JsonElement request)
|
|
{
|
|
{
|
|
//string id_token = HttpContext.GetXAuth("IdToken");
|
|
//string id_token = HttpContext.GetXAuth("IdToken");
|
|
//if (string.IsNullOrEmpty(id_token)) return BadRequest();
|
|
//if (string.IsNullOrEmpty(id_token)) return BadRequest();
|
|
@@ -98,13 +98,13 @@ namespace TEAMModelOS.Controllers
|
|
string ContainerName = a.Item1;
|
|
string ContainerName = a.Item1;
|
|
string BlobName = a.Item2;
|
|
string BlobName = a.Item2;
|
|
bool flg = IsBlobName(BlobName);
|
|
bool flg = IsBlobName(BlobName);
|
|
- var codes = code.ToString().Split("/");
|
|
|
|
- var FileName = codes[codes.Length - 1];
|
|
|
|
|
|
+ var codes = azureBlobSAS.Split("/");
|
|
|
|
+ var FileName = codes[codes.Length - 1].Split(".")[0];
|
|
if (flg)
|
|
if (flg)
|
|
{
|
|
{
|
|
//TODO 需驗證
|
|
//TODO 需驗證
|
|
BlobAuth blobAuth = _azureStorage.GetBlobSasUriRead(ContainerName, BlobName);
|
|
BlobAuth blobAuth = _azureStorage.GetBlobSasUriRead(ContainerName, BlobName);
|
|
- var response = await _clientFactory.CreateClient().GetAsync(new Uri(blobAuth.url + blobAuth.sas));
|
|
|
|
|
|
+ var response = await _clientFactory.CreateClient().GetAsync(new Uri(blobAuth.url));
|
|
response.EnsureSuccessStatusCode();
|
|
response.EnsureSuccessStatusCode();
|
|
Stream stream= await response.Content.ReadAsStreamAsync();
|
|
Stream stream= await response.Content.ReadAsStreamAsync();
|
|
string index = await PPTXTranslator(ContainerName, FileName, stream);
|
|
string index = await PPTXTranslator(ContainerName, FileName, stream);
|
|
@@ -144,7 +144,7 @@ namespace TEAMModelOS.Controllers
|
|
var id = jwt.Payload.Sub;
|
|
var id = jwt.Payload.Sub;
|
|
if (FileType.GetExtention(file.FileName).ToLower().Equals("pptx") || FileType.GetExtention(file.FileName).ToLower().Equals("xml"))
|
|
if (FileType.GetExtention(file.FileName).ToLower().Equals("pptx") || FileType.GetExtention(file.FileName).ToLower().Equals("xml"))
|
|
{
|
|
{
|
|
- string FileName = file.FileName;
|
|
|
|
|
|
+ string FileName = file.FileName.Split(".")[0];
|
|
Stream streamFile = file.OpenReadStream();
|
|
Stream streamFile = file.OpenReadStream();
|
|
string index = await PPTXTranslator(id, FileName, streamFile);
|
|
string index = await PPTXTranslator(id, FileName, streamFile);
|
|
return Ok(new { index = index });
|
|
return Ok(new { index = index });
|
|
@@ -237,20 +237,19 @@ namespace TEAMModelOS.Controllers
|
|
|
|
|
|
private async Task<string> PPTXTranslator(string id, string FileName, Stream streamFile)
|
|
private async Task<string> PPTXTranslator(string id, string FileName, Stream streamFile)
|
|
{
|
|
{
|
|
- //var day = new DateTimeOffset(DateTime.UtcNow).ToString("yyyyMMdd", DateTimeFormatInfo.InvariantInfo);
|
|
|
|
- string shaCode = ShaHashHelper.GetSHA1(streamFile);
|
|
|
|
|
|
+ var status = await _azureStorage.GetBlobServiceClient().DelectBlobs(id, $"res/{FileName}");
|
|
|
|
+ string shaCode = Guid.NewGuid().ToString("N");
|
|
HTEXLib.Htex htex = htexGenerator.Generator(streamFile);
|
|
HTEXLib.Htex htex = htexGenerator.Generator(streamFile);
|
|
htex.name = FileName;
|
|
htex.name = FileName;
|
|
var slides = htex.slides;
|
|
var slides = htex.slides;
|
|
List<Task> tasks = new List<Task>();
|
|
List<Task> tasks = new List<Task>();
|
|
HTEX hTEX = new HTEX() { name = FileName, size = htex.size, thumbnail = htex.thumbnail, id = shaCode };
|
|
HTEX hTEX = new HTEX() { name = FileName, size = htex.size, thumbnail = htex.thumbnail, id = shaCode };
|
|
-
|
|
|
|
Dictionary<string, string> texts = new Dictionary<string, string>();
|
|
Dictionary<string, string> texts = new Dictionary<string, string>();
|
|
List<string> shas = new List<string>();
|
|
List<string> shas = new List<string>();
|
|
foreach (var slide in slides)
|
|
foreach (var slide in slides)
|
|
{
|
|
{
|
|
string text = JsonHelper.ToJson(slide, ignoreNullValue: false);
|
|
string text = JsonHelper.ToJson(slide, ignoreNullValue: false);
|
|
- string sha = ShaHashHelper.GetSHA1(text);
|
|
|
|
|
|
+ string sha = Guid.NewGuid().ToString("N");
|
|
texts.Add(sha, text);
|
|
texts.Add(sha, text);
|
|
shas.Add(sha);
|
|
shas.Add(sha);
|
|
}
|
|
}
|