### Question:
S3PinotFS extends PinotFS { @Override public InputStream open(URI uri) throws IOException { try { String path = sanitizePath(uri.getPath()); GetObjectRequest getObjectRequest = GetObjectRequest.builder().bucket(uri.getHost()).key(path).build(); return _s3Client.getObjectAsBytes(getObjectRequest).asInputStream(); } catch (S3Exception e) { throw e; } }  @Override void init(PinotConfiguration config); void init(S3Client s3Client); @Override boolean mkdir(URI uri); @Override boolean delete(URI segmentUri, boolean forceDelete); @Override boolean doMove(URI srcUri, URI dstUri); @Override boolean copy(URI srcUri, URI dstUri); @Override boolean exists(URI fileUri); @Override long length(URI fileUri); @Override String[] listFiles(URI fileUri, boolean recursive); @Override void copyToLocalFile(URI srcUri, File dstFile); @Override void copyFromLocalFile(File srcFile, URI dstUri); @Override boolean isDirectory(URI uri); @Override long lastModified(URI uri); @Override boolean touch(URI uri); @Override InputStream open(URI uri); @Override void close(); static final String ACCESS_KEY; static final String SECRET_KEY; static final String REGION; static final String ENDPOINT; static final String S3_SCHEME; }### Answer:
@Test public void testOpenFile() throws Exception { String fileName = "sample.txt"; String fileContent = "Hello, World"; _s3Client.putObject(S3TestUtils.getPutObjectRequest(BUCKET, fileName), RequestBody.fromString(fileContent)); InputStream is = _s3PinotFS.open(URI.create(String.format(FILE_FORMAT, SCHEME, BUCKET, fileName))); String actualContents = IOUtils.toString(is, StandardCharsets.UTF_8); Assert.assertEquals(actualContents, fileContent); }