Мне нужно создать утилиту, которая собирает набор журналов, zip их и прикреплять их к jira.Сбор журналов ZIP и загрузка в службу Http без временного файла
Я планирую использовать httpclient 4.5. (имеет поддержку NIO) API jira здесь не проблема.
Я хотел бы передавать файлы непосредственно из файловой системы через zip-поток и загружать в jira без необходимости создания временного zip-файла в файловой системе.
Я обнаружил, что API-интерфейс java запутан в таком случае и не смог определить использование. Внимательно выглядит, что такой случай является хорошим кандидатом на использование NIO в Java (может быть, канал?), Но не нашел хорошего примера.
В качестве отправной точки я создал пример, который загружает один файл, но я не могу его перенести на следующий шаг Zip-потока.
HttpClient httpClient = createHttpClient();
final String issueUriAttach = issueUri + "/" + "attachments";
HttpPost postRequest = new HttpPost(issueUriAttach);
final FileInputStream fileInputStream = new FileInputStream("README.md");
InputStream in = new InputStream() {
@Override
public int read() throws IOException {
return 0;
}
@Override
public int read(byte[] b, int off, int len) throws IOException {
return fileInputStream.read(b,off,len);
}
};
InputStreamBody inputStreamBody = new InputStreamBody(in,"README.csv");
HttpEntity reqEntity = MultipartEntityBuilder.create()
.setContentType(ContentType.MULTIPART_FORM_DATA)
.addPart("file", inputStreamBody)
.build();
postRequest.setHeader(getAuthHeader());
postRequest.setHeader(getNocheckHeader());
postRequest.setEntity(reqEntity);
final HttpResponse response = httpClient.execute(postRequest);
Как я сказал, что я не ограничивается Java I/O Java NIO вариант, а ..
вы можете использовать log4j библиотеку http://stackoverflow.com/questions/3329385/compress-log4j-files – koutuk
Благодаря @koutuk. Это внешняя утилита. Он должен собирать журналы, создаваемые приложением, которое мы тестируем, и не создаем журналы. –