Мой предыдущий код:
Код: Выделить всё
public void enableFileSelected (String sourcePath, String destPath, String fileSystemName) throws IOException {
log.debug("enableFileSelected");
log.debug("enableFileSelected sourcePath : {}", sourcePath);
log.debug("enableFileSelected destPath : {}", destPath);
log.debug("enableFileSelected containerName : {}", fileSystemName);
DataLakeFileSystemClient fileSystemClient = serviceClient.getFileSystemClient(fileSystemName);
log.debug("fileSystemClient1 : {}", fileSystemClient);
DataLakeFileClient sourcefileClient = fileSystemClient.getFileClient(sourcePath);
log.debug("sourcefileClient : {}", sourcefileClient);
InputStream inputStream = sourcefileClient.openInputStream().getInputStream();
DataLakeFileClient destfileClient = fileSystemClient.getFileClient(destPath);
log.debug("destfileClient : {}", destfileClient);
byte[] content = StreamUtils.copyToByteArray(inputStream);
ByteArrayInputStream contentStream = new ByteArrayInputStream(content);
destfileClient.upload(contentStream, content.length,true);
}
Чтобы исправить это, я попытался использовать потоки и временные файлы.
Временные файлы блокируются по соображениям безопасности. В потоках я получаю вложенное исключение ошибки java.lang.IllegalStateException: блокировка()/blockFirst()/blockLast() блокируется, что не поддерживается в потоке-реактора-html
Мой текущий код
Код: Выделить всё
public void enableFileSelected (String sourcePath, String destPath, String fileSystemName) throws IOException {
log.debug("enableFileSelected");
log.debug("enableFileSelected sourcePath : {}", sourcePath);
log.debug("enableFileSelected destPath : {}", destPath);
log.debug("enableFileSelected containerName : {}", fileSystemName);
DataLakeFileSystemClient fileSystemClient = serviceClient.getFileSystemClient(fileSystemName);
log.debug("fileSystemClient1 : {}", fileSystemClient);
DataLakeFileClient sourcefileClient = fileSystemClient.getFileClient(sourcePath);
log.debug("sourcefileClient : {}", sourcefileClient);
DataLakeFileClient destfileClient = fileSystemClient.getFileClient(destPath);
try (InputStream inputStream = sourcefileClient.openInputStream().getInputStream()) {
long fileLength = sourcefileClient.getProperties().getFileSize();
log.debug("sourcefileClientLength : {}", fileLength);
log.debug("destfileClient : {}", destfileClient);
destfileClient.upload(inputStream, fileLength, true);
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... illegalsta
Мобильная версия