Yea, you can use Companion (but probably not on Envoy, since it’s a node app and not well suited for serverless), or implement some HTTP endpoints yourself and point Uppy to those instead. Github user janko described the process in this issue: https://github.com/transloadit/uppy/issues/1189#issuecomment-445521442
You can either implement your endpoints to work with the same API as the Companion endpoints, and then you can do:
uppy.use(AwsS3Multipart, { companionUrl: '/your-server/' })
Or do some custom implementation on the server and override all the functions in the S3 Multipart plugin options: https://uppy.io/docs/aws-s3-multipart/#createMultipartUpload-file