private CompletableFuture<Void> shallowlyDelete(List<S3Object> s3objects) {
            List<ObjectPath> objectPaths = s3objects.stream().map(o -> new ObjectPath(o.bucket(), o.getObjectKey())).collect(Collectors.toList());
            return objectStorage.delete(objectPaths)
                .thenAccept(rst -> {
                    List<Long> deletedObjectIds = s3objects.stream().map(S3Object::getObjectId).collect(Collectors.toList());
                    notifyS3ObjectDeleted(deletedObjectIds);
                }).exceptionally(e -> {
                    log.error("Failed to delete the S3Object from S3, objectKeys: {}",
                        objectPaths.stream().map(ObjectPath::key).collect(Collectors.joining(",")), e);
                    return null;
                });
        }
Generate RemoveS3ObjectRecord for the deleted S3Objects.

@param deletedObjectIds the deleted S3Objects' ids
@return the result of the generation, contains the records which should be applied to the raft.
metadata/src/main/java/org/apache/kafka/controller/stream/S3ObjectControlManager.java