I am working on an application where I need to handle large Excel files (up to 40 MB). Here’s how I’m processing the files:
Upload and Chunking:
Processing with Timer:
Issue:
name: 'OutSystems.Application.ErrorHandling.ExtensionException', message: 'Input payload is too large (33.33MB), maximum allowed is 5.5MB.', stack: 'OutSystems.Application.ErrorHandling.ExtensionException'
Questions:
Additional Details:
Looking forward to suggestions and best practices for managing this scenario. Thank you!
Dear @Mayank Dharmpurikar .
Implement an external File Processing microservice to handle file merging and processing.
1. OutSystems uploads the chunks to a cloud storage service (e.g., AWS S3, Azure Blob Storage).
2. Metadata for chunks (e.g., file URLs) is sent to a microservice.
3. The microservice merges and processes the file, returning the result to OutSystems.
Please have a look at the "Use with large binary files" of the documentation at https://success.outsystems.com/documentation/outsystems_developer_cloud/building_apps/extend_your_apps_with_external_logic_using_custom_code/external_libraries_sdk_readme/ . This talks about the issue you are facing and some work arounds.
Hi,
I am also experiencing the same issue using AWS SDK for multi part upload in S3 bucket.
We are already slicing the binary into 5MB (5242880) but when we pass it to server action (external logic), it throws an error Input payload is too large (6.67MB), maximum allowed is 5.50MB
Any idea for workaround?
At least any document or info on how ODC compute for the Input Payload?
Thank you!
FYI. The minimum file that AWS accepts is 5MB. Hence the reason why I am chunking it to 5MB. Ref: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
Hi Marco,
I'm not sure if this should be in another post but I hope this still helps.Even if your file is 5MB, the "payload too large" error is thrown because of overhead as explained in the latter part of this link: https://success.outsystems.com/documentation/outsystems_developer_cloud/building_apps/extend_your_apps_with_custom_code/best_practices_for_using_external_libraries/Try using pre-signed URL instead:https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html
https://www.outsystems.com/forge/component-overview/20242/s3-presigned-file-upload-helper-odc
Hi @Mayank Dharmpurikar , This is super late reponse but I hope it still helps :)The reason you are still seeing that 33.33MB error even after chunking the file is because you are passing the whole list of chunks at once.
Instead of pushing your list of chunks to your .NET extension, perhaps expose those chunks via a REST API with security token. On your .NET extension, pull the chunks via the REST API then do the assembly. This should take care of your issue. Or better yet, assemble the chunks in ODC before returning the whole file to your .NET extension via REST API. It depends on your requirement of course.
You can see this pattern recommended in the official docs under the "Use with large binary files" section: https://success.outsystems.com/documentation/outsystems_developer_cloud/building_apps/extend_your_apps_with_custom_code/best_practices_for_using_external_libraries/