private void delayedWrite0(WriteOptions options, String path, ByteBuf data, CompletableFuture<Void> cf,
        int delayMs) {
        CompletableFuture<Void> ignored = new CompletableFuture<>();
        scheduler.schedule(() -> write0(options, path, data, ignored, cf), delayMs, TimeUnit.MILLISECONDS);
    }
Put an object to the specified path.

@param options   options (or context) about the write operation
@param path      the path to put the object
@param data      the data to put, it will be released once the finalCf is done
@param attemptCf the CompletableFuture to complete when a single attempt is done
@param finalCf   the CompletableFuture to complete when the write operation is done
s3stream/src/main/java/com/automq/stream/s3/operator/AbstractObjectStorage.java