code: def fetch(self):
          
          if self._file_path is not None:
              return self._file_path
          temp_path = self.context.work_path
          if self._content_hash is not None:
              self._file_path = storage.load_file(self._content_hash,
                                                  temp_path=temp_path)
              return self._file_path
          if self.response is not None:
              self._file_path = random_filename(temp_path)
              content_hash = sha1()
              with open(self._file_path, 'wb') as fh:
                  for chunk in self.response.iter_content(chunk_size=8192):
                      content_hash.update(chunk)
                      fh.write(chunk)
              self._remove_file = True
              chash = content_hash.hexdigest()
              self._content_hash = storage.archive_file(self._file_path,
                                                        content_hash=chash)
              if self.http.cache and self.ok:
                  self.context.set_tag(self.request_id, self.serialize())
              self.retrieved_at = datetime.utcnow().isoformat()
          return self._file_path
docs: Lazily trigger download of the data when requested.