code: def get_requests(self):
          
          self.download_list = [DownloadRequest(url=self.get_url(metafile), filename=self.get_filepath(metafile),
                                                data_type=AwsConstants.AWS_FILES[metafile], data_name=metafile) for
                                metafile in self.metafiles if metafile in AwsConstants.PRODUCT_FILES]
  
          tile_parent_folder = os.path.join(self.parent_folder, self.product_id)
          for tile_info in self.product_info['tiles']:
              tile_name, date, aws_index = self.url_to_tile(self.get_tile_url(tile_info))
              if self.tile_list is None or AwsTile.parse_tile_name(tile_name) in self.tile_list:
                  tile_downloads, tile_folders = AwsTile(tile_name, date, aws_index, parent_folder=tile_parent_folder,
                                                         bands=self.bands, metafiles=self.metafiles,
                                                         data_source=self.data_source).get_requests()
                  self.download_list.extend(tile_downloads)
                  self.folder_list.extend(tile_folders)
          self.sort_download_list()
          return self.download_list, self.folder_list
docs: Creates product structure and returns list of files for download.
  
          :return: List of download requests and list of empty folders that need to be created
          :rtype: (list(download.DownloadRequest), list(str))