Mein vorheriger Code lautet
Code: Select all
        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);
}
Um das zu beheben, habe ich versucht, Streams und temporäre Dateien zu verwenden.
Temporäre Dateien werden aus Sicherheitsgründen blockiert. Bei Streams erhalte ich den Fehler „NestedException is java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking“, was im Thread „reactor-html“ nicht unterstützt wird.
Mein aktueller Code ist
Code: Select all
    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);
}
}
 Mobile version
 Mobile version