Github user zentol commented on a diff in the pull request:
https://github.com/apache/flink/pull/6178#discussion_r196667205
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/rest/FileUploadHandler.java
---
@@ -95,14 +107,22 @@ protected void channelRead0(final
ChannelHandlerContext ctx, final HttpObject ms
final DiskFileUpload fileUpload =
(DiskFileUpload) data;
checkState(fileUpload.isCompleted());
- final Path dest =
uploadDir.resolve(Paths.get(UUID.randomUUID() +
- "_" +
fileUpload.getFilename()));
+ final Path dest =
currentUploadDir.resolve(fileUpload.getFilename());
fileUpload.renameTo(dest.toFile());
-
ctx.channel().attr(UPLOADED_FILE).set(dest);
+ } else if (data.getHttpDataType() ==
InterfaceHttpData.HttpDataType.Attribute) {
+ final Attribute request = (Attribute)
data;
+ // this could also be implemented by
using the first found Attribute as the payload
+ if
(data.getName().equals(HTTP_ATTRIBUTE_REQUEST)) {
+ currentJsonPayload =
request.get();
+ } else {
+ LOG.warn("Received unknown
attribute {}, will be ignored.", data.getName());
+ }
}
}
if (httpContent instanceof LastHttpContent) {
+ ctx.channel().attr(UPLOADED_FILES).set(new
FileUploads(Collections.singleton(currentUploadDir)));
+
ctx.channel().attr(UPLOADED_JSON).set(currentJsonPayload);
--- End diff --
I can try this (it would be neat to remove the special case in
`AbstractHandler`, but I'm wondering whether we can "simply" replace the
payload of the multipart request (as identified by the headers that we also
forward) with plain json.
---