in oss-20190517/src/main/java/com/aliyun/sdk/service/oss20190517/encryption/internal/DefaultAsyncEncryptionClient.java [98:113]
public <ReturnT> CompletableFuture<ReturnT> getObjectWithAsyncResponseHandler(GetObjectRequest request, AsyncResponseHandler<GetObjectResponse, ReturnT> responseHandler) {
return asyncClient.headObject(toHeadObjectRequest(request)).thenCompose(result -> {
final Map<String, String> headers = result.getHeaders();
if (Utils.hasEncryptionInfo(headers)) {
try {
CryptoModule crypto = new CryptoModuleDispatcher(ossDirect, encryptionMaterials, cryptoConfiguration);
return crypto.getObjectSecurely(request, headers, responseHandler);
} catch (Exception e) {
CompletableFuture<ReturnT> future = new CompletableFuture<>();
future.completeExceptionally(e);
return future;
}
}
return asyncClient.getObjectWithAsyncResponseHandler(request, responseHandler);
});
}