code: def put_file_url(self, commit, path, url, recursive=False):
          
          req = iter([
              proto.PutFileRequest(
                  file=proto.File(commit=commit_from(commit), path=path),
                  url=url,
                  recursive=recursive
              )
          ])
          self.stub.PutFile(req, metadata=self.metadata)
docs: Puts a file using the content found at a URL. The URL is sent to the
          server which performs the request.
  
          Params:
          * commit: A tuple, string, or Commit object representing the commit.
          * path: The path to the file.
          * url: The url of the file to put.
          * recursive: allow for recursive scraping of some types URLs for
          example on s3:// urls.