You can't use putFile() with an HTTP type Uri. According to the documentation, you're supposed to use it to upload a local file.
If you want to upload a file to Storage that exists somewhere else referenced by an HTTP URL, you'll have to download that file first, store it locally, then upload it.