title: GCS - Python download blobs with directory structure
body: <p>I'm using a combination of the GCS python SDK and google API client to loop through a version-enabled bucket and download specific objects based on metadata. </p>
  
  <pre><code>from google.cloud import storage
  from googleapiclient import discovery
  from oauth2client.client import GoogleCredentials
  
  def downloadepoch_objects():
      request = service.objects().list(
          bucket=bucket_name,
          versions=True
      )
      response = request.execute()
  
      for item in response['items']:
          if item['metadata']['epoch'] == restore_epoch:
              print(item['bucket'])
              print(item['name'])
              print(item['metadata']['epoch'])
              print(item['updated'])
              blob = source_bucket.blob(item['name'])
              blob.download_to_filename(
                  '/Users/admin/git/data-processing/{}'.format(item))
  
  
  downloadepoch_objects()
  </code></pre>
  
  <p>The above function works properly for a blob that is not within a directory (gs://bucketname/test1.txt) as the item that gets passed in is simply test1.txt. The issue I am running into is when trying to download files from a complex directory tree (gs://bucketname/nfs/media/docs/test1.txt) The item that gets passed is nfs/media/docs/test1.txt. Is it possible to have the .download_to_file() method to create directories if they are not present?</p>