|
@@ -1,11 +1,14 @@
|
|
|
using Azure.Cosmos;
|
|
|
using Azure.Storage.Blobs;
|
|
|
using Azure.Storage.Blobs.Models;
|
|
|
+using Azure.Storage.Sas;
|
|
|
+using DocumentFormat.OpenXml.Drawing.Diagrams;
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Microsoft.Extensions.Options;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
+using System.Globalization;
|
|
|
using System.IO;
|
|
|
using System.Text;
|
|
|
using System.Text.Json;
|
|
@@ -19,6 +22,7 @@ using TEAMModelOS.SDK.DI;
|
|
|
using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
|
|
|
using TEAMModelOS.SDK.Extension;
|
|
|
using TEAMModelOS.SDK.Models;
|
|
|
+using TEAMModelOS.SDK.Models.Cosmos.BI;
|
|
|
|
|
|
namespace TEAMModelBI.Controllers.Census
|
|
|
{
|
|
@@ -126,8 +130,13 @@ namespace TEAMModelBI.Controllers.Census
|
|
|
var oldBobCilent = _azureStorage.GetBlobContainerClient(containerName: $"{cItem.oldSc}");
|
|
|
var newBobCilent = _azureStorage.GetBlobContainerClient(containerName: $"{cItem.newSc}");
|
|
|
|
|
|
- string blobUrl = $"{paper.blob}";
|
|
|
+ string blobUrl = "";
|
|
|
+ if (paper.blob.IndexOf('/') == 0)
|
|
|
+ blobUrl = $"{paper.blob}".Substring(1, paper.blob.Length - 1);
|
|
|
+ else
|
|
|
+ blobUrl = $"{paper.blob}";
|
|
|
|
|
|
+ List<Task<CopyFromUriOperation>> filelist = new(); //可复制256M以上文件
|
|
|
await foreach (BlobItem blobItem in oldBobCilent.GetBlobsAsync(BlobTraits.None, BlobStates.None, blobUrl))
|
|
|
{
|
|
|
if (blobItem.Name.EndsWith(".json"))
|
|
@@ -135,7 +144,36 @@ namespace TEAMModelBI.Controllers.Census
|
|
|
BlobClient tempClient = oldBobCilent.GetBlobClient(blobItem.Name);
|
|
|
using (var meomoryStream = new MemoryStream())
|
|
|
{
|
|
|
- var response = oldBobCilent.GetBlobClient($"{blobItem.Name}").DownloadTo(meomoryStream);
|
|
|
+ StringBuilder itemStr = new("[");
|
|
|
+ BlobClient tempBlobClient = oldBobCilent.GetBlobClient(blobItem.Name);
|
|
|
+ BlobDownloadInfo download = tempBlobClient.Download();
|
|
|
+ var content = download.Content;
|
|
|
+ string text;
|
|
|
+ using (var streamReader = new StreamReader(content))
|
|
|
+ {
|
|
|
+ while ((text = streamReader.ReadLine()) != null)
|
|
|
+ {
|
|
|
+ if (streamReader.EndOfStream)
|
|
|
+ itemStr.Append($"{text.ToString()}");
|
|
|
+ else
|
|
|
+ itemStr.Append($"{text.ToString()},");
|
|
|
+ }
|
|
|
+
|
|
|
+ itemStr.Append("]");
|
|
|
+ streamReader.Close();
|
|
|
+ }
|
|
|
+ string input = itemStr.ToString();
|
|
|
+ BlobItemInfo blobbItemInfo = input.ToObject<BlobItemInfo>();
|
|
|
+
|
|
|
+ //var response = oldBobCilent.GetBlobClient($"{blobItem.Name}").DownloadTo(meomoryStream);
|
|
|
+ //BlobItemInfo blobbItemInfo = Encoding.UTF8.GetString(meomoryStream.ToArray()).ToString().ToObject<BlobItemInfo>();
|
|
|
+ blobbItemInfo.exercise.periodId = cItem.newPrdId;
|
|
|
+ blobbItemInfo.exercise.gradeIds = cItem.newGrId;
|
|
|
+ blobbItemInfo.exercise.subjectId = cItem.newSubId;
|
|
|
+
|
|
|
+ var urlSas = _azureStorage.GetBlobSAS($"{cItem.newSc}", blobItem.Name, BlobSasPermissions.Read | BlobSasPermissions.List); //获取容器sas和有效期
|
|
|
+
|
|
|
+ var ster = newBobCilent.UploadFileByContainer(blobbItemInfo.ToJsonString(), blobItem.Name, blobbItemInfo.id);
|
|
|
}
|
|
|
}
|
|
|
}
|