using TEAMModelOS.SDK.Module.AzureBlob.Container; using Microsoft.AspNetCore.Http; using System.Collections.Generic; using System.Threading.Tasks; using System.IO; using TEAMModelOS.SDK.Module.AzureBlob.Configuration; namespace TEAMModelOS.SDK.Module.AzureBlob.Interfaces { public interface IAzureBlobDBRepository { Task> UploadFiles(IFormFile[] file ,string fileSpace="common" ,bool contentTypeDefault = false); Task UploadFile(IFormFile file, string fileSpace = "wordfiles", bool contentTypeDefault = true); Task UploadPath(string path, string fileSpace = "common", bool contentTypeDefault = false); Task UploadObject(string fileName, object obj, string fileSpace = "common", bool contentTypeDefault = true); Task UploadText(string fileName, string text, string fileSpace = "common", bool contentTypeDefault = true); Task UploadFileByFolder(Stream fileSteam, string folder, string fileName, string fileSpace = "pptx", bool contentTypeDefault = true); Task UploadTextByFolder(string text, string folder, string fileName, string fileSpace = "pptx", bool contentTypeDefault = true); AzureBlobModel UploadFileByFolderNAsyn(Stream fileSteam, string folder, string fileName, string fileSpace = "pptx", bool contentTypeDefault = true); Task GetBlobSasUri(string blobName, string containerName=null, string policyName = null); Task GetBlobSasUriRead(string containerName, string blobName, string policyName = null); Task<(string, string, string)> GetContainerSasUri(string containerName=null, string policyName = null); Task<(string, string)> GetContainerSasUriRead(string containerName, string policyName = null); Task CreateSharedAccessPolicyAsync(string policyName , string containerName = null); Task DeleteSharedAccessPolicyAsync(string policyName, string containerName = null); Task Deleteblob(string sasUri); Task> GetBlobDirectory(string containerName, string blobName); Task> GetBlobSasUri(BlobSas blobSas,bool isRead); /// /// 获取某个文件的共享访问签名 /// /// /// /// Task GetBlobSasUriRead(string containerName, string blobName); /// /// 获取某个角色及对应的容器的共享访问签名 /// /// /// /// Task GetContainerSasUri(BlobSas blobSas, bool isRead); /// /// 系统管理员 资源,题目关联,htex关联,学习活动学生上传文件关联,基本信息关联,教室平面图关联,评测冷数据关联 /// "system": [ "res", "item", "htex", "task", "info", "room", "exam" ], /// 资源,题目关联,htex关联,学习活动学生上传文件关联,基本信息关联,教室平面图关联,评测冷数据关联 /// "school": [ "res", "item", "htex", "task", "info", "room", "exam" ], /// 资源,题目关联,htex关联,学习活动关联,教师基本信息关联 /// "teacher": [ "res", "item", "htex", "task", "info" ], /// 答案及学习活动上传的文件,学生基本信息关联 ///"student": [ "stu/{studentId}/ans", "stu/{studentId}/task" ] /// /// 容器名称 /// 文件内容的流 /// 业务文件夹 /// 文件名 /// 是否存放文件后缀对应的contentType /// Task UploadFileByContainer(string name, string text, string folder, string fileName, bool contentTypeDefault = true); } }