File upload limitation to 5 GB

Hi Calponia Platform team,

I’m writing in reference to the “Release 0.9.0: 4.4.2022 limitation on file size” topic. We are still struggling to upload files bigger than 5GB with File API, usually we are getting forcefully disconnected. Are you planning to increase the size capacity for the File API?
Below I’m attaching the snippet of our logs with error we are receiving.

Summary

2024-01-12 14:28:52.202 +01:00 [ERR] [] [Etas.DigitalBackbone.DigitalTwinManager.Services.PantarisFileStorageService] Uploading file ‘testBigFile.txt’ into directory ‘387ebba6-afa1-11ee-849e-bf3cea7fcea2’ fails with error: Error while copying content to a stream.
2024-01-12 14:28:54.393 +01:00 [FTL] [] [Etas.DigitalBackbone.DigitalTwinManager.DataConsumers.FileFromDeviceMQConsumer] Error while copying content to a stream.
System.Net.Http.HttpRequestException: Error while copying content to a stream.
—> System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host…
—> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host.
— End of inner exception stack trace —
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Security.SslStream.g__CompleteWriteAsync|157_1[TIOAdapter](ValueTask writeTask, Byte[] bufferToReturn)
at System.Net.Security.SslStream.WriteAsyncChunked[TIOAdapter](ReadOnlyMemory1 buffer, CancellationToken cancellationToken) at System.Net.Security.SslStream.WriteAsyncInternal[TIOAdapter](ReadOnlyMemory1 buffer, CancellationToken cancellationToken)
at System.Net.Http.HttpContent.g__WaitAsync|56_0(ValueTask copyTask)
— End of inner exception stack trace —
at Etas.DigitalBackbone.DigitalTwinManager.Services.PantarisFileStorageService.UploadFile(Stream fileStream, String fileName, String targetDirectoryId, CancellationToken cancellationToken) in C:\Users\Robert_Walicki\Source\Repos\digitaltwin\Etas.DigitalBackbone.DigitalTwinManager\Services\PantarisFileStorageService.cs:line 110
at Etas.DigitalBackbone.DigitalTwinManager.DataConsumers.FileFromDeviceMQConsumer.<>c__DisplayClass10_0.<g__UploadAzureFile|1>d.MoveNext() in C:\Users\Robert_Walicki\Source\Repos\digitaltwin\Etas.DigitalBackbone.DigitalTwinManager\DataConsumers\FileFromDeviceMQConsumer.cs:line 162
— End of stack trace from previous location —
at Etas.DigitalBackbone.DigitalTwinManager.DataConsumers.FileFromDeviceMQConsumer.HandleMessageAsync(IMessageQueueMessage1 message, IMessageQueueProducer1 feedbackProducer, CancellationToken stoppingToken) in C:\Users\Robert_Walicki\Source\Repos\digitaltwin\Etas.DigitalBackbone.DigitalTwinManager\DataConsumers\FileFromDeviceMQConsumer.cs:line 72
at Etas.DigitalBackbone.MessageQueue.DataConsumers.MessageQueueListenerBase2.SubscribeAsync(String topicName, TContext context, CancellationToken stoppingToken) in C:\Users\Robert_Walicki\Source\Repos\digitaltwin\Etas.DigitalBackbone.MessageQueue\DataConsumers\MessageQueueListenerBase.cs:line 31 at Etas.DigitalBackbone.DigitalTwinManager.DataConsumers.FileFromDeviceMQConsumer.SubscribeImplAsync(CancellationToken stoppingToken) in C:\Users\Robert_Walicki\Source\Repos\digitaltwin\Etas.DigitalBackbone.DigitalTwinManager\DataConsumers\FileFromDeviceMQConsumer.cs:line 51 at Polly.AsyncPolicy.<>c__DisplayClass40_0.<<ImplementationAsync>b__0>d.MoveNext() --- End of stack trace from previous location --- at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates1 shouldRetryResultPredicates, Func5 onRetryAsync, Int32 permittedRetryCount, IEnumerable1 sleepDurationsEnumerable, Func4 sleepDurationProvider, Boolean continueOnCapturedContext)

Hi @robert.walicki , please verify the project has enaugh space left (e.g. via the file-browser in the ui). If your upload still fails, please create a ticket providing:

  • the projectId
  • file size
  • used protocol to upload (tusd, webdav)

You can also check, if you are able to upload the file using the file-browser in the beloging project to check if it’s an issue on our side in case you use tusd.