Not sure what you mean by “based on w…tn.recieve”, but I think was you want is to get a stream that is the file contents as the input to your service. The default content handler for unknown content types will do exactly that in the pipeline key “contentStream”. i.e. just do an HTTP POST of the data to the service you write.
You then may want to write the stream to disk. Then you can unzip that contents (See WmSamples unzip example) possibly from disk to disk and then process the unzipped data a chunk at a time - I assume the contents can’t all be in memory at the same time (if it can, then the overhead of zipping and unzipping would defeat the gain of transfering a smaller file, unless the network is exceptionally slow).