Starts in:
1 DAY
0 HR
25 MIN
54 SEC
Starts in:
1 D
0 H
25 M
54 S

Activities of "limiko"

Thanks, resolved it !

But the Size is int type, it overflow now, how to fix this issue?

public class FileDescriptor : AuditedAggregateRoot<Guid>, IMultiTenant
{
    public int Size { get; protected internal set; }
}
    
public class FileDescriptorDto : ExtensibleAuditedEntityDto<Guid>, IHasConcurrencyStamp
{
    public int Size { get; set; }
}

Thanks~

New issue happend when i upload a large file (7GB).

the WebHost thrown:

[19:31:43 INF] Sending HTTP request POST https://localhost:44301/api/file-management/file-descriptor/upload?Name=sd-webui-aki-v4.9.7z&OverrideExisting=True&ExtraProperties=Volo.Abp.Data.ExtraPropertyDictionary&api-version=1.0
[19:33:23 ERR] ---------- RemoteServiceErrorInfo ----------
{
  "code": null,
  "message": "An error occurred during the ABP remote HTTP request. (The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.) See the inner exception for details.",
  "details": null,
  "data": {},
  "validationErrors": null
}

[19:33:23 ERR] An error occurred during the ABP remote HTTP request. (The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.) See the inner exception for details.
Volo.Abp.Http.Client.AbpRemoteCallException: An error occurred during the ABP remote HTTP request. (The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.) See the inner exception for details.
 ---> System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.
 ---> System.TimeoutException: The operation was canceled.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
 ---> System.IO.IOException: Unable to read data from the transport connection: 由于线程退出或 应用程序请求,已中止 I/O 操作。.
 ---> System.Net.Sockets.SocketException (995): 由于线程退出或应用程序请求,已中止 I/O 操作。
   --- End of inner exception stack trace ---
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)
   at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)
   at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
   at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](Memory`1 buffer, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource&lt;TResult&gt;.GetResult(Int16 token)
   at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
   at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.&lt;SendCoreAsync&gt;g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.&lt;SendCoreAsync&gt;g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.&lt;SendAsync&gt;g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
   at System.Net.Http.HttpClient.&lt;SendAsync&gt;g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync(ClientProxyRequestContext requestContext)
   --- End of inner exception stack trace ---
   at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync(ClientProxyRequestContext requestContext)
   at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](ClientProxyRequestContext requestContext)
   at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](String methodName, ClientProxyRequestTypeValue arguments)
   at Volo.FileManagement.Files.FileDescriptorClientProxy.CreateAsync(Nullable`1 directoryId, CreateFileInputWithStream inputWithStream)
   at lambda_method3403(Closure, Object)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeNextActionFilterAsync&gt;g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeInnerFilterAsync&gt;g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextExceptionFilterAsync&gt;g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
[19:33:23 ERR] Code:
[19:33:23 ERR] Details:
[19:33:23 INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
[19:33:23 INF] Executed action Volo.FileManagement.Files.FileDescriptorController.CreateAsync (Volo.FileManagement.HttpApi) in 159170.0881ms
[19:33:23 INF] Executed endpoint 'Volo.FileManagement.Files.FileDescriptorController.CreateAsync (Volo.FileManagement.HttpApi)'
[19:33:23 INF] Request starting HTTP/2 POST https://localhost:44302/api/file-management/file-descriptor/upload - multipart/form-data; boundary=----WebKitFormBoundaryWHh4hagNOJiN39KI 7538690034
[19:33:23 INF] Check the access_token is active every 60 seconds.
[19:33:23 INF] The access_token is active.
[19:33:23 INF] Start processing HTTP request GET https://localhost:44301/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
[19:33:23 INF] Sending HTTP request GET https://localhost:44301/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
[19:33:23 INF] Received HTTP response headers after 47.5971ms - 200
[19:33:23 INF] End processing HTTP request after 47.7461ms - 200
[19:33:23 INF] Start processing HTTP request GET https://localhost:44301/api/abp/application-localization?CultureName=zh-Hans&OnlyDynamics=True&api-version=1.0
[19:33:23 INF] Sending HTTP request GET https://localhost:44301/api/abp/application-localization?CultureName=zh-Hans&OnlyDynamics=True&api-version=1.0
[19:33:23 INF] Received HTTP response headers after 38.3634ms - 200
[19:33:23 INF] End processing HTTP request after 38.5779ms - 200
[19:33:23 INF] Executing endpoint 'Volo.FileManagement.Files.FileDescriptorController.CreateAsync (Volo.FileManagement.HttpApi)'
[19:33:23 INF] Route matched with {controller = "FileDescriptors", area = "fileManagement", action = "Create", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.FileManagement.Files.FileDescriptorDto] CreateAsync(System.Nullable`1[System.Guid], Volo.FileManagement.Files.CreateFileInputWithStream) on controller Volo.FileManagement.Files.FileDescriptorController (Volo.FileManagement.HttpApi).
[19:33:23 INF] Request finished HTTP/2 POST https://localhost:44302/api/file-management/file-descriptor/upload - 500 null application/json; charset=utf-8 159524.6782ms

the ApiHost thrown:

[19:33:23 INF] Request finished HTTP/1.1 GET https://localhost:44301/api/abp/application-localization?CultureName=zh-Hans&OnlyDynamics=True&api-version=1.0 - 200 null application/json; charset=utf-8 38.1603ms
[19:33:27 ERR] An error occurred using a transaction.
[19:33:27 ERR] ---------- RemoteServiceErrorInfo ----------
{
  "code": null,
  "message": "对不起,在处理您的请求期间产生了一个服务器内部错误!!",
  "details": null,
  "data": {},
  "validationErrors": null
}

[19:33:27 ERR] The operation was canceled.
System.OperationCanceledException: The operation was canceled.
   at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at MySqlConnector.Core.CommandExecutor.ExecuteReaderAsync(CommandListPosition commandListPosition, ICommandPayloadCreator payloadCreator, CommandBehavior behavior, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/CommandExecutor.cs:line 15
   at MySqlConnector.MySqlCommand.ExecuteReaderAsync(CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlCommand.cs:line 357
   at MySqlConnector.MySqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlCommand.cs:line 350
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
   at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
   at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`3.FindAsync(TKey id, Boolean includeDetails, CancellationToken cancellationToken)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Volo.FileManagement.Files.FileDescriptorAppService.CreateAsync(Nullable`1 directoryId, CreateFileInputWithStream inputWithStream)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   ...
   <InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
[19:33:27 INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
[19:33:27 INF] Executed action Volo.FileManagement.Files.FileDescriptorController.CreateAsync (Volo.FileManagement.HttpApi) in 104660.6893ms
[19:33:27 INF] Executed endpoint 'Volo.FileManagement.Files.FileDescriptorController.CreateAsync (Volo.FileManagement.HttpApi)'
[19:33:28 INF] Request finished HTTP/1.1 POST https://localhost:44301/api/file-management/file-descriptor/upload?Name=sd-webui-aki-v4.9.7z&OverrideExisting=True&ExtraProperties=Volo.Abp.Data.ExtraPropertyDictionary&api-version=1.0 - 499 null application/json; charset=utf-8 105391.5284ms
[19:34:19 INF] Request starting HTTP/1.1 POST https://localhost:44301/api/file-management/file-descriptor/upload?Name=sd-webui-aki-v4.9.7z&OverrideExisting=True&ExtraProperties=Volo.Abp.Data.ExtraPropertyDictionary&api-version=1.0 - multipart/form-data; boundary="2a9f04a1-b972-4f0b-8ee8-2778ca3086fe" 7538689764
[19:34:19 INF] Executing endpoint 'Volo.FileManagement.Files.FileDescriptorController.CreateAsync (Volo.FileManagement.HttpApi)'
[19:34:19 INF] Route matched with {controller = "FileDescriptors", area = "fileManagement", action = "Create", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.FileManagement.Files.FileDescriptorDto] CreateAsync(System.Nullable`1[System.Guid], Volo.FileManagement.Files.CreateFileInputWithStream) on controller Volo.FileManagement.Files.FileDescriptorController (Volo.FileManagement.HttpApi).

This large file saved at minio success, but nothing at FileManagement.

Fine, thanks! I have some questions:

  1. I created a MyFileDescriptorAppService at Application layer and override the CheckSizeAsync method, then how to inject it and replace the origin FileDescriptorAppService ?
  2. Could you share me the fully code of CheckSizeAsync method, your image just a part of it, i don't know whether has other important logic.
  3. And why the MaxSizeLength isn't a long type?
public static class FileDescriptorConsts
{
  public static int MaxSizeLength = int.MaxValue;
}

It works right now.

I mistakenly thought that it would be configured after the program started running, but it would only be configured when I actually accessed FileManagement :(

A new issue happened when i upload a large file.

[23:00:19 WRN] ---------- RemoteServiceErrorInfo ----------
{
  "code": null,
  "message": "文件太大,最大文件大小限制为 2 GB。",
  "details": null,
  "data": {},
  "validationErrors": null
}

[23:00:19 WRN] 文件太大,最大文件大小限制为 2 GB。
Volo.Abp.UserFriendlyException: 文件太大,最大文件大小限制为 2 GB。
   at Volo.FileManagement.Files.FileDescriptorAppService.CheckSizeAsync(Int64 contentLength)
   at Volo.FileManagement.Files.FileDescriptorAppService.GetPreInfoAsync(List`1 input)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
   at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Features.FeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Volo.FileManagement.Files.FileDescriptorController.GetPreInfoAsync(List`1 input)
   at lambda_method3119(Closure, Object)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeNextActionFilterAsync&gt;g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeInnerFilterAsync&gt;g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextExceptionFilterAsync&gt;g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

I already added follow code.

    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        var hostingEnvironment = context.Services.GetHostingEnvironment();
        var configuration = context.Services.GetConfiguration();

        Configure&lt;FormOptions&gt;(x =>
        {
            x.MultipartBodyLengthLimit = 1024L * 1024 * 1024 * 10; //10G
            x.ValueLengthLimit = int.MaxValue;
        });
        Configure&lt;KestrelServerOptions&gt;(options =>
        {
            options.Limits.MaxRequestBodySize = 1024L * 1024 * 1024 * 10; //10G
        });
        ...
    }

Could tell me how to resolve it ?

And at my machine, Console can't print the "## - 1", so configure for minio is skiped. Is this message printed at your machine?

Configure<AbpBlobStoringOptions>(options =>
        {
            System.Console.WriteLine("## - 1");
           
        });

Fine, could you share the project with me? I want to test it at my machine.

Ok, I sended it .

Ok, I sended the project to your email.

In my here, upload file success but nothing in the minio.

<br>

Upload small file success, but nothing in the minio. I think configure AbpBlobStoringOptions is not triggered.

Configure<AbpBlobStoringOptions>(options =>
{
    // Can't enter here .....        
}
  • ABP Framework version: v8.2.2
  • UI Type: MVC
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

I created a app-pro template project, and add FileManagement Module. It works fine.

Now i need use minio, i readed the https://abp.io/docs/latest/framework/infrastructure/blob-storing/minio, add minio use abp add-package Volo.Abp.BlobStoring.Minio in my HttpApi.Host project.

HttpApi.Host.csproj

...
    <PackageReference Include="Volo.Abp.BlobStoring.Minio" Version="8.2.2" />
...

appsettings.json

{
...
    "Minio": {
        "EndPoint": "127.0.0.1",
        "AccessKey": "minioadmin",
        "SecretKey": "minioadmin",
        "BucketName": "my",
        "WithSSL": false,
        "CreateContainerIfNotExists": true
    },
    ...
}

MyHttpApiHostModule.js

[DependsOn(
    ...
    typeof(AbpBlobStoringMinioModule),
    ...
    )]
public class MyHttpApiHostModule : AbpModule {
    ...
    public override void ConfigureServices(ServiceConfigurationContext context) {
        ...
        Configure<AbpBlobStoringOptions>(options =>
        {
            System.Console.WriteLine("## - 1");
            options.Containers.Configure<FileManagementContainer>(c =>
            {
                System.Console.WriteLine("## - 2");
                c.UseMinio(minio =>
                {
                    System.Console.WriteLine("## - 3");
                    minio.EndPoint = configuration["Minio:EndPoint"]!;
                    minio.AccessKey = configuration["Minio:AccessKey"]!;
                    minio.SecretKey = configuration["Minio:SecretKey"]!;
                    minio.BucketName = configuration["Minio:BucketName"];
                    minio.WithSSL = configuration.GetValue<bool>("Minio:WithSSL");
                    minio.CreateBucketIfNotExists = configuration.GetValue<bool>("Minio:CreateBucketIfNotExists");
                });
            });
        });
    }
    ...

I added a breakpoint in line System.Console.WriteLine("## - 1");, But where i run the HttpApi.Host, There is no output ## - 1 from the log, and no breakpoints are triggered.

Am I missing some steps?

Showing 1 to 10 of 10 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 20, 2024, 13:06