
         @Override
         public int read() throws IOException {
 
             openObject();
             int readByte = this.s3ObjectInputStream.read();
 
             if(readByte >= 0){
                 this.position++;
             }
 
             return readByte;
         }
 
         @Override
         public int read(byte[] b, int off, int len) throws IOException {
 
             openObject();
             int readByte = this.s3ObjectInputStream.read(b, off, len);
 
             if(readByte >= 0){
                 this.position+=readByte;
 
             }
             return readByte;
         }
 
         @Override
         public void close() throws IOException {
             super.close();
 
             if(s3Object != null){
                 s3Object.close();
             }
         }
 
 
         @Override
         public boolean markSupported() {
             return false;
         }
 
         @Override
         public void seek(long l) throws IOException {
 
             if(this.position == l){
                 return;
             }
             openS3Stream(l);
 
         }
 
         @Override
         public long getPos() throws IOException {
             return this.position;
         }
 
         @Override
         public boolean seekToNewSource(long l) throws IOException {
             return false;
         }
 
 
     }
 
 
