code: func (s *storage) fileName(ctx context.Context, zipRef blob.Ref) (string, error) {
  	_, size, err := s.large.Fetch(ctx, zipRef)
  	if err != nil {
  		return "", err
  	}
  	zr, err := zip.NewReader(blob.ReaderAt(ctx, s.large, zipRef), int64(size))
  	if err != nil {
  		return "", zipOpenError{zipRef, err}
  	}
  	for _, f := range zr.File {
  		return f.Name, nil
  	}
  	return "", os.ErrNotExist
  }
docs: // TODO(mpl): add client command to call reindex on an "offline" blobpacked. camtool packblobs -reindex maybe?
  // fileName returns the name of the (possibly partial) first file in zipRef
  // (i.e. the actual data). It returns a zipOpenError if there was any problem
  // reading the zip, and os.ErrNotExist if the zip could not be fetched or if
  // there was no file in the zip.