title: Guzzle: Parallel file download using Guzzle's Pool:batch() and `sink` option
body: <p>You can execute http requests in parallel using Guzzle's <code>Pool:batch()</code> method. It allows you to set default options for requests using <code>options</code> key in the third parameter.</p>
  
  <p>But what if I need different options for different requests in the pool? I would like to execute GET requests using a pool and stream each response to a different file on disk. There is a <code>sink</code> option for that. But how to apply different values of this option to requests?</p>