title: streaming write to gcs using apache beam per element
body: <p>Current beam pipeline is reading files as stream using <code>FileIO.matchAll().continuously()</code>. This returns PCollection .
  I want to write these files back with the same names to another gcs bucket i.e each <code>PCollection</code> is one file <code>metadata/readableFile</code> which should be written back to another bucket after some processing. Is there any sink that i should use to achieve writing each <code>PCollection</code> item back to GCS or are there any ways to do it ?
  Is it possible to create a window per element and then use some GCS sink IO to be able to do this.
  When operating on a window (even if it has multiple elements) , does beam guarantees that either a window is fully processed or not processed at all , in other words are write operations to <code>GCS or bigquery</code> for a given window atomic and not partial in case of any failures ?</p>