List of usage examples for org.apache.hadoop.hdfs.web.resources LengthParam LengthParam
public LengthParam(final String str)
From source file:com.bigstep.datalake.DLFileSystem.java
License:Apache License
@Override public FSDataInputStream open(final Path f, final int buffersize) throws IOException { statistics.incrementReadOps(1);//from w ww . j a va 2 s . c o m final HttpOpParam.Op op = GetOpParam.Op.OPEN; if (this.shouldUseEncryption) { DLEncryptionUtils dlenc = DLEncryptionUtils.getInstance(); int nHeaderSize = dlenc.getHeaderDetailLength(); byte[] b = new byte[nHeaderSize]; byte[] key = dlenc.getSecretKey(); int nBlockSize = key.length; byte[] initVector = new byte[nBlockSize]; // use a runner so the open can recover from an invalid token FsPathConnectionRunner runnerHeader = new FsPathConnectionRunner(op, f, new BufferSizeParam(buffersize), new LengthParam((long) nHeaderSize + nBlockSize)); OffsetUrlInputStream inputStreamHeader = new OffsetUrlInputStream(new UnresolvedUrlOpener(runnerHeader), new OffsetUrlOpener(null)); inputStreamHeader.readFully(0, b, 0, nHeaderSize); inputStreamHeader.readFully(nHeaderSize, initVector, 0, nBlockSize); FsPathConnectionRunner runnerData = new FsPathConnectionRunner(op, f, new BufferSizeParam(buffersize), new OffsetParam((long) nHeaderSize + nBlockSize)); OffsetUrlInputStream inputStreamData = new OffsetUrlInputStream(new UnresolvedUrlOpener(runnerData), new OffsetUrlOpener(null)); Properties props = new Properties(); props.put("commons.crypto.stream.buffer.size", buffersize); return new FSDataInputStream(new DLPositionedCryptoInputStream(props, new DLStreamInput(inputStreamData, buffersize), key, initVector, 0L)); } else { FsPathConnectionRunner runner = new FsPathConnectionRunner(op, f, new BufferSizeParam(buffersize)); return new FSDataInputStream( new OffsetUrlInputStream(new UnresolvedUrlOpener(runner), new OffsetUrlOpener(null))); } }