router.route().handler(BodyHandler.create().setUploadsDirectory("uploads"));
/** * Set the uploads directory to use * @param uploadsDirectory the uploads directory * @return reference to this for fluency */ public io.vertx.rxjava.ext.web.handler.BodyHandler setUploadsDirectory(String uploadsDirectory) { delegate.setUploadsDirectory(uploadsDirectory); return this; }
@Test public void testFileUploadOtherUploadsDir() throws Exception { router.clear(); File dir = tempUploads.newFolder(); router.route().handler(BodyHandler.create().setUploadsDirectory(dir.getPath())); testFileUpload(dir.getPath(), 5000); }
/** * Set the uploads directory to use * @param uploadsDirectory the uploads directory * @return reference to this for fluency */ public io.vertx.rxjava.ext.web.handler.BodyHandler setUploadsDirectory(String uploadsDirectory) { delegate.setUploadsDirectory(uploadsDirectory); return this; }
private void testFileUploadFileRemoval(Handler<RoutingContext> requestHandler, boolean deletedUploadedFilesOnEnd, int statusCode, String statusMessage) throws Exception { String uploadsDirectory = tempUploads.newFolder().getPath(); router.clear(); router.route().handler(BodyHandler.create() .setDeleteUploadedFilesOnEnd(deletedUploadedFilesOnEnd) .setUploadsDirectory(uploadsDirectory)); router.route().handler(requestHandler); sendFileUploadRequest(TestUtils.randomBuffer(50), statusCode, statusMessage); int uploadedFilesAfterEnd = deletedUploadedFilesOnEnd ? 0 : 1; assertWaitUntil(() -> uploadedFilesAfterEnd == vertx.fileSystem().readDirBlocking(uploadsDirectory).size()); }
@Test public void testFileDeleteOnLargeUpload() throws Exception { String uploadsDirectory = tempUploads.newFolder().getPath(); router.clear(); router.route().handler(BodyHandler.create() .setDeleteUploadedFilesOnEnd(true) .setBodyLimit(10000) .setUploadsDirectory(uploadsDirectory)); router.route().handler(ctx -> { fail(); ctx.fail(500); }); sendFileUploadRequest(TestUtils.randomBuffer(20000), 413, "Request Entity Too Large"); Thread.sleep(100); // wait until file is removed assertEquals(0, vertx.fileSystem().readDirBlocking(uploadsDirectory).size()); }
router.clear(); router.route().handler(BodyHandler.create() .setUploadsDirectory(uploadsDirectory));
@Test public void testNoUploadDirFormURLEncoded() throws Exception { String dirName = getNotCreatedTemporaryFolderName(); router.clear(); router.route().handler(BodyHandler.create(false).setUploadsDirectory(dirName)); testFormURLEncoded(); assertFalse("Upload directory must not be created.", vertx.fileSystem().existsBlocking(dirName)); }
@Test public void testNoUploadDirMultiPartFormData() throws Exception { String dirName = getNotCreatedTemporaryFolderName(); router.clear(); router.route().handler(BodyHandler.create(false).setUploadsDirectory(dirName)); Buffer fileData = TestUtils.randomBuffer(50); router.route().handler(rc -> { rc.response().end(); assertFalse("Upload directory must not be created.", vertx.fileSystem().existsBlocking(dirName)); }); sendFileUploadRequest(fileData, 200, "OK"); }
.setUploadsDirectory(uploadsDirectory)); router.route().handler(ctx -> { assertEquals(0, ctx.getBody().length());
@Test public void testSetHandleFileUploads() throws Exception { String dirName = getNotCreatedTemporaryFolderName(); router.clear(); BodyHandler bodyHandler = BodyHandler.create().setUploadsDirectory(dirName).setHandleFileUploads(false); router.route().handler(bodyHandler); Buffer fileData = TestUtils.randomBuffer(50); Route route = router.route().handler(rc -> { rc.response().end(); assertFalse("Upload directory must not be created.", vertx.fileSystem().existsBlocking(dirName)); }); sendFileUploadRequest(fileData, 200, "OK"); route.remove(); bodyHandler.setHandleFileUploads(true); router.route().handler(rc -> { rc.response().end(); assertTrue("Upload directory must be created.", vertx.fileSystem().existsBlocking(dirName)); }); sendFileUploadRequest(fileData, 200, "OK"); }
/** * Creates the router for handling requests. * <p> * This method creates a router instance with a default route limiting the body size of requests to the maximum * payload size set in the <em>config</em> properties. * * @return The newly created router (never {@code null}). */ protected Router createRouter() { final Router router = Router.router(vertx); LOG.info("limiting size of inbound request body to {} bytes", getConfig().getMaxPayloadSize()); router.route() .handler(BodyHandler.create().setBodyLimit(getConfig().getMaxPayloadSize()).setUploadsDirectory(DEFAULT_UPLOADS_DIRECTORY)) .failureHandler(new DefaultFailureHandler()); return router; }
/** * Creates the router for handling requests. * <p> * This method creates a router instance with a default route limiting the body size of requests to the maximum * payload size set in the <em>config</em> properties. * * @return The newly created router (never {@code null}). */ protected Router createRouter() { final Router router = Router.router(vertx); LOG.info("limiting size of inbound request body to {} bytes", getConfig().getMaxPayloadSize()); router.route() .handler(BodyHandler.create().setBodyLimit(getConfig().getMaxPayloadSize()).setUploadsDirectory(DEFAULT_UPLOADS_DIRECTORY)) .failureHandler(new DefaultFailureHandler()); return router; }
@Test public void testFileUploadOtherUploadsDir() throws Exception { router.clear(); File dir = tempUploads.newFolder(); router.route().handler(BodyHandler.create().setUploadsDirectory(dir.getPath())); testFileUpload(dir.getPath(), 5000); }
private void testFileUploadFileRemoval(Handler<RoutingContext> requestHandler, boolean deletedUploadedFilesOnEnd, int statusCode, String statusMessage) throws Exception { String uploadsDirectory = tempUploads.newFolder().getPath(); router.clear(); router.route().handler(BodyHandler.create() .setDeleteUploadedFilesOnEnd(deletedUploadedFilesOnEnd) .setUploadsDirectory(uploadsDirectory)); router.route().handler(requestHandler); sendFileUploadRequest(TestUtils.randomBuffer(50), statusCode, statusMessage); int uploadedFilesAfterEnd = deletedUploadedFilesOnEnd ? 0 : 1; assertWaitUntil(() -> uploadedFilesAfterEnd == vertx.fileSystem().readDirBlocking(uploadsDirectory).size()); }
@Test public void testFileDeleteOnLargeUpload() throws Exception { String uploadsDirectory = tempUploads.newFolder().getPath(); router.clear(); router.route().handler(BodyHandler.create() .setDeleteUploadedFilesOnEnd(true) .setBodyLimit(10000) .setUploadsDirectory(uploadsDirectory)); router.route().handler(ctx -> { fail(); ctx.fail(500); }); sendFileUploadRequest(TestUtils.randomBuffer(20000), 413, "Request Entity Too Large"); Thread.sleep(100); // wait until file is removed assertEquals(0, vertx.fileSystem().readDirBlocking(uploadsDirectory).size()); }
@Test public void testNoUploadDirMultiPartFormData() throws Exception { String dirName = getNotCreatedTemporaryFolderName(); router.clear(); router.route().handler(BodyHandler.create(false).setUploadsDirectory(dirName)); Buffer fileData = TestUtils.randomBuffer(50); router.route().handler(rc -> { rc.response().end(); assertFalse("Upload directory must not be created.", vertx.fileSystem().existsBlocking(dirName)); }); sendFileUploadRequest(fileData, 200, "OK"); }
@Test public void testNoUploadDirFormURLEncoded() throws Exception { String dirName = getNotCreatedTemporaryFolderName(); router.clear(); router.route().handler(BodyHandler.create(false).setUploadsDirectory(dirName)); testFormURLEncoded(); assertFalse("Upload directory must not be created.", vertx.fileSystem().existsBlocking(dirName)); }
.setUploadsDirectory(uploadsDirectory)); router.route().handler(ctx -> { assertEquals(0, ctx.getBody().length());
@Test public void testSetHandleFileUploads() throws Exception { String dirName = getNotCreatedTemporaryFolderName(); router.clear(); BodyHandler bodyHandler = BodyHandler.create().setUploadsDirectory(dirName).setHandleFileUploads(false); router.route().handler(bodyHandler); Buffer fileData = TestUtils.randomBuffer(50); Route route = router.route().handler(rc -> { rc.response().end(); assertFalse("Upload directory must not be created.", vertx.fileSystem().existsBlocking(dirName)); }); sendFileUploadRequest(fileData, 200, "OK"); route.remove(); bodyHandler.setHandleFileUploads(true); router.route().handler(rc -> { rc.response().end(); assertTrue("Upload directory must be created.", vertx.fileSystem().existsBlocking(dirName)); }); sendFileUploadRequest(fileData, 200, "OK"); }