private void sizeCalculationIteration(UUID jobId, String jobIdPrefix,
      DataModel exportedData) throws CopyException {
    Collection<? extends DownloadableItem> items;
    if (exportedData instanceof PhotosContainerResource) {
      items = ((PhotosContainerResource) exportedData).getPhotos();
    } else if (exportedData instanceof VideosContainerResource) {
      items = ((VideosContainerResource) exportedData).getVideos();
    } else if (exportedData instanceof MediaContainerResource) {
      MediaContainerResource mcr = (MediaContainerResource) exportedData;
      List<DownloadableItem> list = new ArrayList<>(mcr.getVideos());
      list.addAll(mcr.getPhotos());
      items = list;
    } else {
      return;
    }

    CallableSizeCalculator callableSizeCalculator =
        new CallableSizeCalculator(jobId, new ConnectionProvider(jobStore), items);
    try {
      RetryingCallable<Map<String, Long>> retryingImporter =
          new RetryingCallable<>(
              callableSizeCalculator,
              retryStrategyLibraryProvider.get(),
              Clock.systemUTC(),
              monitor,
              JobMetadata.getDataType(),
              JobMetadata.getImportService());
      jobStore.addBytes(jobId, retryingImporter.call());
    } catch (RetryException | RuntimeException e) {
      throw convertToCopyException(jobIdPrefix, "size estimation", e);
    }
  }
Kicks off transfer job {@code jobId} from {@code exporter} to {@code importer}.
portability-transfer/src/main/java/org/datatransferproject/transfer/copier/PortabilityAbstractInMemoryDataCopier.java