使用 InputStreamReader 时出现 IOException
IOException when using InputStreamReader
当在我的程序中执行下面的代码部分时,我得到一个 IOException。
try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(logStorageUrl.openStream()))) {
String currentLine;
while((currentLine = bufferedReader.readLine()) != null){
Vault vlt = mapper.readValue(currentLine, Vault.class);
logger.debug("Log Store Name: " + vlt.getvault_name());
logger.debug("Log Store Vault: " + vault);
if(vlt.getvault_name().equals(vault.toLowerCase())){
logger.debug("Per Vault Total log_store vault name: " + vlt.getvault_name() + ", bytes: " + vlt.getBytes());
byteCount += vlt.getBytes();
}
}
logger.debug("Total LogStore ByteCount: " + byteCount);
} catch(IOException e){
System.out.println("IO Exception " + e );
}
异常详情如下:
IO Exception java.io.IOException: Server returned HTTP response code: 403 for URL: https://s3-api.XXXXXX.net/cr-test
我怀疑它可能与 aws v4 身份验证有关,因为这是我正在使用的方法,我已经遇到了问题,但似乎已解决。会不会是我的 header 里少了什么?我之前的问题是因为没有在我的 header 中传递 'host' 但这次我包含了它。
我知道我传递了正确的访问密钥和密钥,并且我没有 select 任何特定的 header 传递。
我传递的 uri 不正确。一旦我得到正确的 uri,我就不再收到错误了。
当在我的程序中执行下面的代码部分时,我得到一个 IOException。
try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(logStorageUrl.openStream()))) {
String currentLine;
while((currentLine = bufferedReader.readLine()) != null){
Vault vlt = mapper.readValue(currentLine, Vault.class);
logger.debug("Log Store Name: " + vlt.getvault_name());
logger.debug("Log Store Vault: " + vault);
if(vlt.getvault_name().equals(vault.toLowerCase())){
logger.debug("Per Vault Total log_store vault name: " + vlt.getvault_name() + ", bytes: " + vlt.getBytes());
byteCount += vlt.getBytes();
}
}
logger.debug("Total LogStore ByteCount: " + byteCount);
} catch(IOException e){
System.out.println("IO Exception " + e );
}
异常详情如下:
IO Exception java.io.IOException: Server returned HTTP response code: 403 for URL: https://s3-api.XXXXXX.net/cr-test
我怀疑它可能与 aws v4 身份验证有关,因为这是我正在使用的方法,我已经遇到了问题,但似乎已解决。会不会是我的 header 里少了什么?我之前的问题是因为没有在我的 header 中传递 'host' 但这次我包含了它。
我知道我传递了正确的访问密钥和密钥,并且我没有 select 任何特定的 header 传递。
我传递的 uri 不正确。一旦我得到正确的 uri,我就不再收到错误了。