Я пытаюсь создать пользовательский Flum HTTPSourceHandler, который обрабатывает содержимое файла, отправленного в тело POST HTTP-запроса, и полезная нагрузка этого сообщения будет gzipped.Flume Custom HTTPSourceHandler GZipped File
Я новичок в Flume и стараюсь понять, как вернуть содержимое этого файла GZip (или любых данных в этом случае) в качестве событий Flume.
Вот неполный код, над которым я работаю. Главная цель прямо сейчас - просто распечатать консоль файла на консоли.
Любые советы, примеры и т. Д. Были бы очень полезными.
import org.apache.flume.Event;
import org.apache.flume.source.http.HTTPSourceHandler;
import org.apache.http.HttpHeaders;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.GZIPInputStream;
public class HttpGzipHandler extends HTTPSourceHandler{
public HttpGzipHandler(){
}
public List<Event> getEvents(HttpServletRequest request) throws Exception {
boolean isGzipped = request.getHeader(HttpHeaders.CONTENT_ENCODING) != null
&& request.getHeader(HttpHeaders.CONTENT_ENCODING).contains("gzip");
GZIPInputStream gzipInputStream = new GZIPInputStream(request.getInputStream());
List<Event> eventList = new ArrayList<Event>(0);
//TODO: Return the Events
}
}