def content_metadata_uploads(self, mirror=False):
        """Finds all specified encoded directories and uploads in multiple parts,
        setting metadata for objects.

        Args:
            mirror (bool): If true, uses a flat directory structure instead of nesting under a version.

        Returns:
            bool: True if uploaded
        """
        excludes_str = ''
        includes_cmds = []
        cmd_base = self._get_upload_cmd(mirror=mirror)

        for content in self.s3props.get('content_metadata'):
            full_path = os.path.join(self.artifact_path, content['path'])
            if not os.listdir(full_path):
                raise S3ArtifactNotFound

            excludes_str += '--exclude "{}/*" '.format(content['path'])
            include_cmd = '{} --exclude "*", --include "{}/*"'.format(cmd_base, content['path'])
            include_cmd += ' --content-encoding {} --metadata-directive REPLACE'.format(content['content-encoding'])
            includes_cmds.append(include_cmd)

        exclude_cmd = '{} {}'.format(cmd_base, excludes_str)
        result = subprocess.run(exclude_cmd, check=True, shell=True, stdout=subprocess.PIPE)
        LOG.info("Uploaded files without metadata with command: %s", exclude_cmd)
        LOG.debug("Upload Command Output: %s", result.stdout)

        for include_cmd in includes_cmds:
            result = subprocess.run(include_cmd, check=True, shell=True, stdout=subprocess.PIPE)
            LOG.info("Uploaded files with metadata with command: %s", include_cmd)
            LOG.debug("Upload Command Output: %s", result.stdout)

        return True
Finds all specified encoded directories and uploads in multiple parts,
        setting metadata for objects.

        Args:
            mirror (bool): If true, uses a flat directory structure instead of nesting under a version.

        Returns:
            bool: True if uploaded