我想将文件发布到vertx http服务器。它工作正常。下一步是,我将介绍一个将数据附加到Web服务器上现有文件的功能。 我的想法是更改 new OpenOptions()参数。
public HttpServerFileUpload streamToFileSystem(String filename) {
Pipe<Buffer> pipe = this.stream.pipe().endOnComplete(false);
this.context.owner().fileSystem().open(filename, new OpenOptions(), (ar) -> {
if (ar.succeeded()) {
this.file = (AsyncFile)ar.result();
pipe.to(this.file, (ar2) -> {
...
方法 streamToFileSystem (我要更改其中的一部分)是 HttpServerFileUploadImpl 类的成员。该课程不是公开的,我无法扩展该课程。 streamToFileSystem 方法在 BodyHandlerImpl
中调用context.request().uploadHandler((upload) -> {
if (BodyHandlerImpl.this.bodyLimit != -1L && upload.isSizeAvailable()) {
long size = this.uploadSize + upload.size();
if (size > BodyHandlerImpl.this.bodyLimit) {
this.failed = true;
context.fail(413);
return;
}
}
if (BodyHandlerImpl.this.handleFileUploads) {
this.uploadCount.incrementAndGet();
String uploadedFileName = (new File(BodyHandlerImpl.this.uploadsDir, UUID.randomUUID().toString())).getPath();
upload.streamToFileSystem(uploadedFileName);
...
upload 是接口 HttpServerFileUpload ,我不知道如何注入或调用实现类 HttpServerFileUploadImpl 。这就是为什么我不知道如何调用修改后的类/方法的原因。
有人可以给我一个提示吗?