diff --git a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/FileAppServiceBase.cs b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/FileAppServiceBase.cs index d8d2cce2b..4c143df8f 100644 --- a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/FileAppServiceBase.cs +++ b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/FileAppServiceBase.cs @@ -24,6 +24,7 @@ namespace LINGYUN.Abp.OssManagement _ossContainerFactory = ossContainerFactory; } + [RequiresFeature(AbpOssManagementFeatureNames.OssObject.UploadFile)] public virtual async Task UploadAsync(UploadFileChunkInput input) { await _fileUploader.UploadAsync( diff --git a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/OssObjectAppService.cs b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/OssObjectAppService.cs index 81b84681e..024bd5a3c 100644 --- a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/OssObjectAppService.cs +++ b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application/LINGYUN/Abp/OssManagement/OssObjectAppService.cs @@ -1,6 +1,8 @@ using LINGYUN.Abp.OssManagement.Permissions; using Microsoft.AspNetCore.Authorization; +using System.IO; using System.Threading.Tasks; +using System.Web; namespace LINGYUN.Abp.OssManagement { @@ -21,9 +23,25 @@ namespace LINGYUN.Abp.OssManagement [Authorize(AbpOssManagementPermissions.OssObject.Create)] public virtual async Task CreateAsync(CreateOssObjectInput input) { - var ossObject = await Merger.MergeAsync(input); + // 内容为空时建立目录 + if (input.Content.IsNullOrEmpty()) + { + var oss = CreateOssContainer(); + var request = new CreateOssObjectRequest( + HttpUtility.UrlDecode(input.Bucket), + HttpUtility.UrlDecode(input.Object), + input.Content, + HttpUtility.UrlDecode(input.Path)); + var ossObject = await oss.CreateObjectAsync(request); - return ObjectMapper.Map(ossObject); + return ObjectMapper.Map(ossObject); + } + else + { + var ossObject = await Merger.MergeAsync(input); + + return ObjectMapper.Map(ossObject); + } } [Authorize(AbpOssManagementPermissions.OssObject.Delete)]