Azure的sdk v10出现问题,当我上传文件时,代码会在上传完成时继续进行,但是我真的很想一直等到上传完成。
我看到c#具有一个“ await”功能,是否有Java方法来处理此问题?
try{
AsynchronousFileChannel fileChannel = AsynchronousFileChannel.open(file.toPath());
TransferManager.uploadFileToBlockBlob(fileChannel, blob, 8*1024*1024, null, null)
.subscribe( azureResponse -> {
logger.info("Status code: " + azureResponse.response().statusCode());
if( azureResponse.response().statusCode() != 201){
logger.error("upload failed - " + azureResponse.response().body());
// throw exception
}
});
} catch( Exception e ) {
// handle the exception
}
答案 0 :(得分:0)
我对azure不太熟悉,但是也许您可以编写一个while循环来阻止线程执行,直到上载过程完成为止。只要您有一个单独的布尔方法可以在文件上传完成后返回true
,就可以用这种简单的方法解决问题。
while(!hasFileUploaded())
{
// do nothing here
}
很抱歉,如果这个答案似乎有点笼统,但又没有进一步了解文件上传的方式和位置,我无法确切告诉您如何验证上传过程。