@Override
  protected void save(AudioResourceModel audioResourceModel) throws Exception {
    String temporaryUploadedFileName =
        audioResourceModel.getResourceVersion().getTemporaryFilename();

    InputStream stream =
        OPFEngine.FileStoreService.download(
            OpenFlame.FILESTORE_BASE, temporaryUploadedFileName, helper.getTemp());
    if (stream != null) {
      super.save(audioResourceModel);
      try {
        AudioResourceVersionModel audioResourceVersion = audioResourceModel.getResourceVersion();
        String audioResourceVersionFilename =
            audioResourceVersion.getId()
                + "_"
                + audioResourceVersion.getVersion()
                + "_"
                + audioResourceVersion.getCulture().name();
        OPFEngine.FileStoreService.upload(
            OpenFlame.FILESTORE_CONTENT,
            audioResourceVersionFilename,
            stream,
            helper.getAudio(),
            String.valueOf(audioResourceModel.getId()));

        resourceVersionStore.saveOrUpdate(audioResourceVersion);
        audioResourceVersion.setTemporaryFilename(null);
      } catch (Exception e) {
        logger.error(e.getMessage(), e);
      } finally {
        IOUtils.closeQuietly(stream);
      }
    } else {
      super.save(audioResourceModel);
    }
  }