I’m submitting a…
- [ ] Regression (a behavior that stopped working in a new release)
- [X] Bug report
- [ ] Performance issue
- [ ] Documentation issue or request
Environment
- [ ] Self hosted with docker
- [X] Self hosted with IIS
- [ ] Self hosted with other version
- [ ] Cloud version
Version: Last Master
I wanted to move the storage to Amazon S3 because the data is getting too big for the server.
The settings work and most files are loaded into the bucket without any problems.
However, I have some ZIP files and larger files that generate an error.
Error message:
“type”: “System.InvalidOperationException”,
"message": "Base stream of PartialWrapperStream must be seekable",
"stackTrace": " at Amazon.Runtime.Internal.Util.PartialWrapperStream..ctor(Stream stream, Int64 partSize)\r\n at Amazon.S3.Model.Internal.MarshallTransformations.UploadPartRequestMarshaller.Marshall(UploadPartRequest uploadPartRequest)\r\n at Amazon.S3.Model.Internal.MarshallTransformations.UploadPartRequestMarshaller.Marshall(AmazonWebServiceRequest input)\r\n at Amazon.Runtime.Internal.Marshaller.PreInvoke(IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.Marshaller.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.PipelineHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.S3.Internal.AmazonS3PreMarshallHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.PipelineHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.CallbackHandler.\u003C\u003En__0[T](IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.S3.Internal.AmazonS3ExceptionHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)\r\n at Amazon.S3.Transfer.Internal.MultipartUploadCommand.UploadPartAsync(UploadPartRequest uploadRequest, CancellationTokenSource internalCts, SemaphoreSlim asyncThrottler)\r\n at Amazon.S3.Transfer.Internal.BaseCommand.WhenAllOrFirstExceptionAsync[T](List\u00601 pendingTasks, CancellationToken cancellationToken)\r\n at Amazon.S3.Transfer.Internal.MultipartUploadCommand.ExecuteAsync(CancellationToken cancellationToken)\r\n at Squidex.Infrastructure.Assets.AmazonS3AssetStore.UploadAsync(String fileName, Stream stream, Boolean overwrite, CancellationToken ct) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Infrastructure.Amazon\\Assets\\AmazonS3AssetStore.cs:line 151\r\n at Squidex.Domain.Apps.Entities.Assets.AssetCommandMiddleware.EnrichWithHashAndUploadAsync(UploadAssetCommand command, String tempFile) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Assets\\AssetCommandMiddleware.cs:line 147\r\n at Squidex.Domain.Apps.Entities.Assets.AssetCommandMiddleware.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Assets\\AssetCommandMiddleware.cs:line 58\r\n at Squidex.Domain.Apps.Entities.Apps.AppCommandMiddleware.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Apps\\AppCommandMiddleware.cs:line 55\r\n at Squidex.Domain.Apps.Entities.Schemas.Indexes.SchemasIndex.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Schemas\\Indexes\\SchemasIndex.cs:line 128\r\n at Squidex.Domain.Apps.Entities.Rules.Indexes.RulesIndex.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Rules\\Indexes\\RulesIndex.cs:line 77\r\n at Squidex.Domain.Apps.Entities.Apps.Indexes.AppsIndex.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Apps\\Indexes\\AppsIndex.cs:line 200\r\n at Squidex.Domain.Apps.Entities.Apps.Invitation.InviteUserCommandMiddleware.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Domain.Apps.Entities\\Apps\\Invitation\\InviteUserCommandMiddleware.cs:line 43\r\n at Squidex.Infrastructure.Commands.CustomCommandMiddlewareRunner.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Infrastructure\\Commands\\CustomCommandMiddlewareRunner.cs:line 33\r\n at Squidex.Web.CommandMiddlewares.EnrichWithSchemaIdCommandMiddleware.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Web\\CommandMiddlewares\\EnrichWithSchemaIdCommandMiddleware.cs:line 54\r\n at Squidex.Web.CommandMiddlewares.ETagCommandMiddleware.HandleAsync(CommandContext context, Func\u00601 next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Web\\CommandMiddlewares\\ETagCommandMiddleware.cs:line 55\r\n at Squidex.Infrastructure.Commands.InMemoryCommandBus.PublishAsync(ICommand command) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Infrastructure\\Commands\\InMemoryCommandBus.cs:line 42\r\n at Squidex.Areas.Api.Controllers.Assets.AssetsController.InvokeCommandAsync(String app, ICommand command) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex\\Areas\\Api\\Controllers\\Assets\\AssetsController.cs:line 302\r\n at Squidex.Areas.Api.Controllers.Assets.AssetsController.PostAsset(String app, Guid parentId, List\u00601 file) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex\\Areas\\Api\\Controllers\\Assets\\AssetsController.cs:line 194\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeActionMethodAsync\u003Eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask\u00601 actionResultValueTask)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeNextActionFilterAsync\u003Eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeInnerFilterAsync\u003Eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeNextExceptionFilterAsync\u003Eg__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeNextResourceFilter\u003Eg__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeFilterPipelineAsync\u003Eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeAsync\u003Eg__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\r\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003CInvoke\u003Eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\r\n at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(HttpContext context)\r\n at Squidex.Web.Pipeline.EnforceHttpsMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Web\\Pipeline\\EnforceHttpsMiddleware.cs:line 28\r\n at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.\u003C\u003Ec__DisplayClass5_1.\u003C\u003CUseMiddlewareInterface\u003Eb__1\u003Ed.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at Squidex.Web.Pipeline.LocalCacheMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Web\\Pipeline\\LocalCacheMiddleware.cs:line 30\r\n at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.\u003C\u003Ec__DisplayClass5_1.\u003C\u003CUseMiddlewareInterface\u003Eb__1\u003Ed.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at Squidex.Web.Pipeline.RequestLogPerformanceMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in D:\\Offline Daten\\Source\\squidex\\backend\\src\\Squidex.Web\\Pipeline\\RequestLogPerformanceMiddleware.cs:line 37\r\n at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.\u003C\u003Ec__DisplayClass5_1.\u003C\u003CUseMiddlewareInterface\u003Eb__1\u003Ed.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT\u00601.ProcessRequestAsync()"