How to handle client side signed image upload to GCS using phoenix?

I am using phoenix. I have my app scaffolded as HTML using phx generator. In my form, I have a field that needs to read a file, fetch signed policy from the server and upload the image to GCS on the client and pass the URL as the field to be stored in the backend.

What is the best way to achieve this in Phoenix. Any docs/articles/code base for reference?