Browse Source

feat(oss): Configure Oss container providers using users

pull/1150/head
colin 1 year ago
parent
commit
2741082de3
  1. 4
      aspnet-core/modules/account/LINGYUN.Abp.Account.Application/LINGYUN/Abp/Account/UserProfilePictureProvider.cs
  2. 2
      aspnet-core/modules/account/LINGYUN.Abp.Account.Web.IdentityServer/LINGYUN.Abp.Account.Web.IdentityServer.csproj
  3. 2
      aspnet-core/modules/account/LINGYUN.Abp.Account.Web.OpenIddict/LINGYUN.Abp.Account.Web.OpenIddict.csproj
  4. 2
      aspnet-core/modules/account/LINGYUN.Abp.Account.Web/LINGYUN.Abp.Account.Web.csproj
  5. 12
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Aliyun/LINGYUN/Abp/OssManagement/Aliyun/AbpOssManagementAliyunModule.cs
  6. 21
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Aliyun/Microsoft/Extensions/DependencyInjection/AliyunOssContainerServiceCollectionExtensions.cs
  7. 14
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.FileSystem/LINGYUN/Abp/OssManagement/FileSystem/AbpOssManagementFileSystemModule.cs
  8. 21
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.FileSystem/Microsoft/Extensions/DependencyInjection/FileSystemOssContainerServiceCollectionExtensions.cs
  9. 14
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/AbpOssManagementMinioModule.cs
  10. 7
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/MinioOssContainer.cs
  11. 21
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/Microsoft/Extensions/DependencyInjection/MinioOssContainerServiceCollectionExtensions.cs
  12. 12
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Tencent/LINGYUN/Abp/OssManagement/Tencent/AbpOssManagementTencentModule.cs
  13. 21
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Tencent/Microsoft/Extensions/DependencyInjection/TencentOssContainerServiceCollectionExtensions.cs

4
aspnet-core/modules/account/LINGYUN.Abp.Account.Application/LINGYUN/Abp/Account/UserProfilePictureProvider.cs

@ -68,7 +68,7 @@ public class UserProfileUserPictureProvider : IUserPictureProvider
(await UserManager.UpdateAsync(user)).CheckErrors();
var pictureName = $"{userId}/avatar/{pictureBlobId}";
var pictureName = $"users/{userId}/avatar/{pictureBlobId}";
await AccountBlobContainer.SaveAsync(pictureName, stream, true);
}
@ -90,7 +90,7 @@ public class UserProfileUserPictureProvider : IUserPictureProvider
return Stream.Null;
}
var pictureName = $"{user.Id:N}/avatar/{picture}";
var pictureName = $"users/{user.Id:N}/avatar/{picture}";
return await AccountBlobContainer.ExistsAsync(pictureName)
? await AccountBlobContainer.GetAsync(pictureName)

2
aspnet-core/modules/account/LINGYUN.Abp.Account.Web.IdentityServer/LINGYUN.Abp.Account.Web.IdentityServer.csproj

@ -11,7 +11,9 @@
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace>LINGYUN.Abp.Account.Web.IdentityServer</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
<OutputType>Library</OutputType>
<IsPackable>true</IsPackable>
</PropertyGroup>
<ItemGroup>

2
aspnet-core/modules/account/LINGYUN.Abp.Account.Web.OpenIddict/LINGYUN.Abp.Account.Web.OpenIddict.csproj

@ -10,8 +10,10 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
<RootNamespace>LINGYUN.Abp.Account.Web.OpenIddict</RootNamespace>
<OutputType>Library</OutputType>
<IsPackable>true</IsPackable>
</PropertyGroup>
<ItemGroup>

2
aspnet-core/modules/account/LINGYUN.Abp.Account.Web/LINGYUN.Abp.Account.Web.csproj

@ -12,8 +12,8 @@
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
<RootNamespace>LINGYUN.Abp.Account.Web</RootNamespace>
<IsPackable>true</IsPackable>
<OutputType>Library</OutputType>
<IsPackable>true</IsPackable>
</PropertyGroup>
<ItemGroup>

12
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Aliyun/LINGYUN/Abp/OssManagement/Aliyun/AbpOssManagementAliyunModule.cs

@ -1,6 +1,4 @@
using LINGYUN.Abp.BlobStoring.Aliyun;
using Microsoft.Extensions.DependencyInjection;
using System;
using Volo.Abp.Modularity;
namespace LINGYUN.Abp.OssManagement.Aliyun;
@ -10,14 +8,4 @@ namespace LINGYUN.Abp.OssManagement.Aliyun;
typeof(AbpOssManagementDomainModule))]
public class AbpOssManagementAliyunModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddTransient<IOssContainerFactory, AliyunOssContainerFactory>();
context.Services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<AliyunOssContainer>());
}
}

21
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Aliyun/Microsoft/Extensions/DependencyInjection/AliyunOssContainerServiceCollectionExtensions.cs

@ -0,0 +1,21 @@
using LINGYUN.Abp.OssManagement;
using LINGYUN.Abp.OssManagement.Aliyun;
using System;
namespace Microsoft.Extensions.DependencyInjection;
public static class AliyunOssContainerServiceCollectionExtensions
{
public static IServiceCollection AddMinioContainer(this IServiceCollection services)
{
services.AddTransient<IOssContainerFactory, AliyunOssContainerFactory>();
services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<AliyunOssContainer>());
return services;
}
}

14
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.FileSystem/LINGYUN/Abp/OssManagement/FileSystem/AbpOssManagementFileSystemModule.cs

@ -1,6 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using System;
using Volo.Abp.BlobStoring.FileSystem;
using Volo.Abp.BlobStoring.FileSystem;
using Volo.Abp.Modularity;
namespace LINGYUN.Abp.OssManagement.FileSystem;
@ -10,14 +8,4 @@ namespace LINGYUN.Abp.OssManagement.FileSystem;
typeof(AbpOssManagementDomainModule))]
public class AbpOssManagementFileSystemModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddTransient<IOssContainerFactory, FileSystemOssContainerFactory>();
context.Services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<FileSystemOssContainer>());
}
}

21
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.FileSystem/Microsoft/Extensions/DependencyInjection/FileSystemOssContainerServiceCollectionExtensions.cs

@ -0,0 +1,21 @@
using LINGYUN.Abp.OssManagement;
using LINGYUN.Abp.OssManagement.FileSystem;
using System;
namespace Microsoft.Extensions.DependencyInjection;
public static class FileSystemOssContainerServiceCollectionExtensions
{
public static IServiceCollection AddFileSystemContainer(this IServiceCollection services)
{
services.AddTransient<IOssContainerFactory, FileSystemOssContainerFactory>();
services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<FileSystemOssContainer>());
return services;
}
}

14
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/AbpOssManagementMinioModule.cs

@ -1,6 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using System;
using Volo.Abp.BlobStoring.Minio;
using Volo.Abp.BlobStoring.Minio;
using Volo.Abp.Modularity;
namespace LINGYUN.Abp.OssManagement.Minio;
@ -10,14 +8,4 @@ namespace LINGYUN.Abp.OssManagement.Minio;
typeof(AbpOssManagementDomainModule))]
public class AbpOssManagementMinioModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddTransient<IOssContainerFactory, MinioOssContainerFactory>();
context.Services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<MinioOssContainer>());
}
}

7
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/MinioOssContainer.cs

@ -3,8 +3,6 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Minio;
using Minio.ApiEndpoints;
using Minio.DataModel;
using Minio.DataModel.Args;
using Minio.DataModel.ILM;
using Minio.Exceptions;
@ -20,7 +18,6 @@ using Volo.Abp.BlobStoring;
using Volo.Abp.BlobStoring.Minio;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Timing;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace LINGYUN.Abp.OssManagement.Minio;
@ -139,7 +136,7 @@ public class MinioOssContainer : OssContainerBase, IOssObjectExpireor
{
var lifecycleRule = new LifecycleRule
{
Status = "Enabled",
Status = LifecycleRule.LifecycleRuleStatusEnabled,
ID = putResponse.Etag,
Expiration = new Expiration(Clock.Now.Add(request.ExpirationTime.Value))
};
@ -236,7 +233,7 @@ public class MinioOssContainer : OssContainerBase, IOssObjectExpireor
{
var lifecycleRule = new LifecycleRule
{
Status = "Enabled",
Status = LifecycleRule.LifecycleRuleStatusEnabled,
ID = item.Key,
Expiration = new Expiration(Clock.Normalize(request.ExpirationTime.DateTime))
};

21
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/Microsoft/Extensions/DependencyInjection/MinioOssContainerServiceCollectionExtensions.cs

@ -0,0 +1,21 @@
using LINGYUN.Abp.OssManagement;
using LINGYUN.Abp.OssManagement.Minio;
using System;
namespace Microsoft.Extensions.DependencyInjection;
public static class MinioOssContainerServiceCollectionExtensions
{
public static IServiceCollection AddMinioContainer(this IServiceCollection services)
{
services.AddTransient<IOssContainerFactory, MinioOssContainerFactory>();
services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<MinioOssContainer>());
return services;
}
}

12
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Tencent/LINGYUN/Abp/OssManagement/Tencent/AbpOssManagementTencentModule.cs

@ -1,6 +1,4 @@
using LINGYUN.Abp.BlobStoring.Tencent;
using Microsoft.Extensions.DependencyInjection;
using System;
using Volo.Abp.Modularity;
namespace LINGYUN.Abp.OssManagement.Tencent;
@ -10,14 +8,4 @@ namespace LINGYUN.Abp.OssManagement.Tencent;
typeof(AbpOssManagementDomainModule))]
public class AbpOssManagementTencentModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddTransient<IOssContainerFactory, TencentOssContainerFactory>();
context.Services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<TencentOssContainer>());
}
}

21
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Tencent/Microsoft/Extensions/DependencyInjection/TencentOssContainerServiceCollectionExtensions.cs

@ -0,0 +1,21 @@
using LINGYUN.Abp.OssManagement;
using LINGYUN.Abp.OssManagement.Tencent;
using System;
namespace Microsoft.Extensions.DependencyInjection;
public static class TencentOssContainerServiceCollectionExtensions
{
public static IServiceCollection AddMinioContainer(this IServiceCollection services)
{
services.AddTransient<IOssContainerFactory, TencentOssContainerFactory>();
services.AddTransient<IOssObjectExpireor>(provider =>
provider
.GetRequiredService<IOssContainerFactory>()
.Create()
.As<TencentOssContainer>());
return services;
}
}
Loading…
Cancel
Save