@Override
        public void copyOnWrite() {
            int size = data.readableBytes();
            if (size > 0) {
                ByteBuf buf = ByteBufAlloc.byteBuffer(size, writeOptions.allocType());
                buf.writeBytes(data.duplicate());
                CompositeByteBuf copy = ByteBufAlloc.compositeByteBuffer().addComponent(true, buf);
                this.data.release();
                this.data = copy;
            }
        }
If object data size is less than ObjectWriter.MAX_UPLOAD_SIZE, we should use single upload to upload it.
Else, we should use multi-part upload to upload it.
s3stream/src/main/java/com/automq/stream/s3/operator/ProxyWriter.java