OutputFile create(long checkpointId) {
        String flinkManifestDir = props.get(FLINK_MANIFEST_LOCATION);

        String newManifestFullPath;
        if (Strings.isNullOrEmpty(flinkManifestDir)) {
            // User don't specify any flink manifest directory, so just use the default metadata path.
            newManifestFullPath = ops.metadataFileLocation(generatePath(checkpointId));
        } else {
            newManifestFullPath =
                    String.format("%s/%s", stripTrailingSlash(flinkManifestDir), generatePath(checkpointId));
        }

        return io.newOutputFile(newManifestFullPath);
    }
Copy from iceberg-flink:iceberg-flink-1.15:1.3.1
inlong-sort/sort-flink/sort-flink-v1.15/sort-connectors/iceberg/src/main/java/org/apache/inlong/sort/iceberg/sink/ManifestOutputFileFactory.java