123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using TEAMModelOS.SDK.Module.AzureBlob.Container;
- using Microsoft.AspNetCore.Http;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using System.IO;
- using Microsoft.WindowsAzure.Storage.Blob;
- using TEAMModelOS.SDK.Module.AzureBlob.Configuration;
- namespace TEAMModelOS.SDK.Module.AzureBlob.Interfaces
- {
- public interface IAzureBlobDBRepository
- {
- Task<List<AzureBlobModel>> UploadFiles(IFormFile[] file ,string fileSpace="common" ,bool contentTypeDefault = false);
- Task<AzureBlobModel> UploadFile(IFormFile file, string fileSpace = "wordfiles", bool contentTypeDefault = true);
- Task<AzureBlobModel> UploadPath(string path, string fileSpace = "common", bool contentTypeDefault = false);
- Task<AzureBlobModel> UploadObject(string fileName, object obj, string fileSpace = "common", bool contentTypeDefault = true);
- Task<AzureBlobModel> UploadText(string fileName, string text, string fileSpace = "common", bool contentTypeDefault = true);
- Task<AzureBlobModel> UploadFileByFolder(Stream fileSteam, string folder, string fileName, string fileSpace = "pptx", bool contentTypeDefault = true);
- Task<AzureBlobModel> 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<string> GetBlobSasUri(string blobName, string containerName=null, string policyName = null);
- Task<string> 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<bool> CreateSharedAccessPolicyAsync(string policyName , string containerName = null);
- Task DeleteSharedAccessPolicyAsync(string policyName, string containerName = null);
- Task Deleteblob(string sasUri);
- Task<List<BlobFileDto>> GetBlobDirectory(string containerName, string blobName);
- Task<Dictionary<string, object>> GetBlobSasUri(BlobSas blobSas,bool isRead);
- /// <summary>
- /// 获取某个文件的共享访问签名
- /// </summary>
- /// <param name="containerName"></param>
- /// <param name="blobName"></param>
- /// <returns></returns>
- Task<dynamic> GetBlobSasUriRead(string containerName, string blobName);
- /// <summary>
- /// 获取某个角色及对应的容器的共享访问签名
- /// </summary>
- /// <param name="blobSas"></param>
- /// <param name="isRead"></param>
- /// <returns></returns>
- Task<dynamic> GetContainerSasUri(BlobSas blobSas, bool isRead);
- /// <summary>
- /// 系统管理员 资源,题目关联,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" ]
- /// </summary>
- /// <param name="name">容器名称</param>
- /// <param name="text">文件内容的流</param>
- /// <param name="folder">业务文件夹</param>
- /// <param name="fileName">文件名</param>
- /// <param name="contentTypeDefault">是否存放文件后缀对应的contentType</param>
- /// <returns></returns>
- Task<AzureBlobModel> UploadFileByContainer(string name, string text, string folder, string fileName, bool contentTypeDefault = true);
- }
- }
|