A theme component should suffice for the upload component, but by default Discourse will download remote images to ensure they aren’t deleted.
Make sure to add imgbb to disabled image download domains after checking their policy about when images are deleted if you implement this upload widget.
I’d guess that such a plugin will cost $500-1000 to develop, which is pretty many years of Digital Ocean Spaces (or any of the serveral others in Configure an S3 compatible object storage provider for uploads). In fact, it would probably be cheaper to use Spaces than to pay to maintain the described plugin if it existed.