-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: remove bloat from large files during upload (WIP) #21757
Conversation
/build-deploy-preview |
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4604011159. |
/build-deploy-preview skip-tests=true |
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4604390921. |
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4811243479. |
Deploy-Preview-URL: https://ce-21757.dp.appsmith.com |
97e3377
/ok-to-test sha=2af0e67 |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4812288796. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4812288796.
|
…0642-file-upload-bloat-removal
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4814760577. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4814760577.
|
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4814760577. |
1 similar comment
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4814760577. |
Warning Rate limit exceeded@github-actions[bot] has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 2 minutes and 58 seconds before requesting another review. How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughThe recent updates enhance the application's capability to handle complex data structures, particularly with blob uploads and action executions. Key improvements include a more flexible Changes
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
Description
Currently, we try to upload large files by converting their binaries into strings which leads to bloat in size. This is because converting to bytes in a multi-byte encoding usually takes a larger space and white characters are also included. We were also doing multiple modifications which were just adding to the bloat.
Hence, we are now converting the binary data into an array buffer to prevent this. This buffer is added to the multi-part form data request as a new part and we add a pointer in the pace of the data which used to be present earlier. This allows us to have minimal bloat on the payload while sending the request.
TLDR: fix for uploading large files by changing the data type used for upload.
TODO:
Fixes #20642
Media
Type of change
How Has This Been Tested?
Test Plan
Issues raised during DP testing
Checklist:
Dev activity
QA activity:
Summary by CodeRabbit
New Features
ParamProperty
class to manage parameter properties more effectively with additional attributes.Bug Fixes
Documentation
Refactor
executeAction
method for improved clarity and maintainability in handling multipart requests.