code: def compose(list_of_files, destination_file, files_metadata=None,
              content_type=None, retry_params=None, _account_id=None):
    
    api = storage_api._get_storage_api(retry_params=retry_params,
                                       account_id=_account_id)
  
  
    if os.getenv('SERVER_SOFTWARE').startswith('Dev'):
      def _temp_func(file_list, destination_file, content_type):
        bucket = '/' + destination_file.split('/')[1] + '/'
        with open(destination_file, 'w', content_type=content_type) as gcs_merge:
          for source_file in file_list:
            with open(bucket + source_file['Name'], 'r') as gcs_source:
              gcs_merge.write(gcs_source.read())
  
      compose_object = _temp_func
    else:
      compose_object = api.compose_object
    file_list, _ = _validate_compose_list(destination_file,
                                          list_of_files,
                                          files_metadata, 32)
    compose_object(file_list, destination_file, content_type)
docs: Runs the GCS Compose on the given files.
  
    Merges between 2 and 32 files into one file. Composite files may even
    be built from other existing composites, provided that the total
    component count does not exceed 1024. See here for details:
    https://cloud.google.com/storage/docs/composite-objects
  
    Args:
      list_of_files: List of file name strings with no leading slashes or bucket.
      destination_file: Path to the output file. Must have the bucket in the path.
      files_metadata: Optional, file metadata, order must match list_of_files,
        see link for available options:
        https://cloud.google.com/storage/docs/composite-objects#_Xml
      content_type: Optional, used to specify content-header of the output file.
      retry_params: Optional, an api_utils.RetryParams for this call to GCS.
        If None,the default one is used.
      _account_id: Internal-use only.
  
    Raises:
      ValueError: If the number of files is outside the range of 2-32.