CrazyIter_Bin 2 lat temu
rodzic
commit
94a8fa251c
1 zmienionych plików z 21 dodań i 11 usunięć
  1. 21 11
      HTEXScreen/Controllers/ScreenController.cs

+ 21 - 11
HTEXScreen/Controllers/ScreenController.cs

@@ -187,7 +187,7 @@ namespace HTEXScreen.Controllers
                 int pagesize = 20;
                 if (screenshot.urls.Count <= pagesize)
                 {
-                      await PageToPdfStream(screenshot.urls,screenshot.fileNameKey,browser,viewPortOptions,pdfOptions);
+                      await PageToPdfStream(screenshot.urls,screenshot.fileNameKey,screenshot.cnt,browser,viewPortOptions,pdfOptions);
                 }
                 else
                 {
@@ -196,7 +196,7 @@ namespace HTEXScreen.Controllers
                     for (int i = 0; i < pages; i++)
                     {
                         var lists = screenshot.urls.Skip((i) * pagesize).Take(pagesize).ToList();
-                        tasks.Add(PageToPdfStream(lists, screenshot.fileNameKey, browser, viewPortOptions, pdfOptions));
+                        tasks.Add(PageToPdfStream(lists, screenshot.fileNameKey, screenshot.cnt, browser, viewPortOptions, pdfOptions));
                     }
                     await Task.WhenAll(tasks);
                 }
@@ -225,7 +225,7 @@ namespace HTEXScreen.Controllers
                 return BadRequest($"{ex.Message}\n{ex.StackTrace}");
             }
         }
-        private async Task PageToPdfStream(List<string> urls,string fileNameKey, Browser browser, ViewPortOptions viewPortOptions, PdfOptions pdfOptions)
+        private async Task PageToPdfStream(List<string> urls,string fileNameKey,string cnt , Browser browser, ViewPortOptions viewPortOptions, PdfOptions pdfOptions)
         {
             List<Task<Page>> pages = new List<Task<Page>>();
             urls.ForEach(x => {
@@ -260,15 +260,15 @@ namespace HTEXScreen.Controllers
                 }
                 //需要解析参数。paths[paths.Length-1]
                 Stream stream = await page_task.PdfStreamAsync(pdfOptions);
-                uploads.Add(_azureStorage.GetBlobContainerClient("teammodelos").UploadFileByContainer(stream, "artreport", $"{id}.pdf", true));
+                if (string.IsNullOrWhiteSpace(cnt))
+                {
+                    uploads.Add(_azureStorage.GetBlobContainerClient("teammodelos").UploadFileByContainer(stream, "artreport", $"{id}.pdf", true));
+                }
+                else {
+                    uploads.Add(_azureStorage.GetBlobContainerClient(cnt).UploadFileByContainer(stream, "artreport", $"{id}.pdf", true));
+                }
             }
-            await Task.WhenAll(uploads);
-            //page_tasks.ToList().ForEach(x => {
-            //    //string file = $"E://pdfs//{Guid.NewGuid()}.pdf";
-            //     string a =  x.Url;
-            //    streams.Add(x.PdfStreamAsync( pdfOptions));
-            //});
-            //Stream[] streamArray = await Task.WhenAll(streams);
+            string[]  uploadUrls=   await Task.WhenAll(uploads);
             page_tasks.ToList().ForEach(x => {
                 tasks.Add(x.DisposeAsync().AsTask());
             });
@@ -314,7 +314,17 @@ namespace HTEXScreen.Controllers
         public int width { get; set; } = 1920;
         public int height { get; set; } = 1080;
         public string? url { get; set; }
+        /// <summary>
+        /// 批量地址
+        /// </summary>
         public List<string> urls { get; set; } = new List<string>();
+        /// <summary>
+        /// 提取参数的唯一id作为文件名
+        /// </summary>
         public string? fileNameKey { get; set; }
+        /// <summary>
+        /// 存在哪个容器里
+        /// </summary>
+        public string? cnt { get; set; }
         public int delay { get; set; }
     }