fileHash(file) { return new Promise((resolve, reject) => { const hash = crypto.createHash('sha1'); const stream = fs.createReadStream(file); stream.on('error', err => reject(err)); stream.on('data', chunk => hash.update(chunk)); stream.on('end', () => resolve(hash.digest('hex'))); }); }
config.cloudReq({ url: (deploymentId) => `build/deploy/${deploymentId}/upload-file`, method: 'POST', formData: { transaction: JSON.stringify(transaction), fileName: file, file: { value: fs.createReadStream(path.join(directory, file)), options: { filename: path.basename(file), contentType: 'application/octet-stream' } } }, auth })
async function runImport(version, url, auth, exportFile) { const authOpts = await getAuthOpts(version, url, auth); const body = new FormData(); body.append('importfile', fs.createReadStream(exportFile)); await got.post('/db/', {...authOpts, body}); }
async getFileStream(p) { return fs.createReadStream(p); }
readStream(path) { let location = this.applyPathPrefix(path); return fs.createReadStream(location); }
/** * 构建单独一个文件 * @param absFilePath * @returns {Promise.<void>} */ async one(absFilePath) { const relativeFilePath = path.relative(CONFIG.paths.src, absFilePath); // 最终输出路径 const distFilePath = path.join(CONFIG.paths.dist, relativeFilePath); fs.ensureFile(distFilePath).then(() => { fs.createReadStream(absFilePath).pipe(fs.createWriteStream(distFilePath)); }); }
it('Other Encoding', async () => { const nl = nexline({ input: fs.createReadStream(path.resolve(__dirname, './data/cp949.txt')), encoding: 'cp949', lineSeparator: os.EOL, }); assert.strictEqual('가나다라', await nl.next()); assert.strictEqual('마바사아', await nl.next()); assert.strictEqual('자차카아', await nl.next()); assert.strictEqual(null, await nl.next()); });
function calculateFileHash () { var outHash var hash = crypto.createHash( 'md5' ) var stream = fs.createReadStream( outPath ) stream.on( 'data', data => hash.update( data )) return new Promise( (resolve, reject ) => stream.on( 'end', async () => { outHash = hash.digest() await fs.appendFile( outPath, outHash ) log( 'outHash', outHash ) resolve() })) }
hashstream = fs.createReadStream(filename);
function insertLibraryLL (outputLib, targetLib, config) { return new Promise((resolve, reject) => { try { const writeStream = fs.createWriteStream(outputLib); writeStream.on('finish', () => { fs.chmodSync(outputLib, 0x1ed); // 0755 /* XXX: if binary doesnt contains an LC_RPATH load command this will not work */ const insertedLibraryName = '@rpath/' + path.basename(targetLib); /* Just copy the library via USB on the DCIM directory */ // const insertedLibraryName = '/var/mobile/Media/DCIM/' + path.basename(targetLib); /* useful on jailbroken devices where we can write in /usr/lib */ // const insertedLibraryName = '/usr/lib/' + path.basename(targetLib); /* forbidden in iOS */ // const insertedLibraryName = '@executable_path/Frameworks/' + path.basename(targetLib); tools.insertLibrary(insertedLibraryName, config.appbin, outputLib).then(resolve).catch(reject); }); fs.createReadStream(targetLib).pipe(writeStream); } catch (e) { reject(e); } }); }
readBytes(file, offset, length, next) { Fs.stat(this.server.path(file), (err, stat) => { if (err) return next(err); if (!stat.isFile()) { const internalError = new Error('Trying to read bytes from a non-file.'); internalError.code = 'EISDIR'; return next(internalError); } if (offset >= stat.size) { return next(null, null, true); } const chunks = []; const stream = Fs.createReadStream(this.server.path(file), { start: offset, end: (offset + length) - 1, }); stream.on('data', data => { chunks.push(data); }); stream.on('end', () => { next(null, Buffer.concat(chunks), false); }); }); }
it('Broken buffer stream', async () => { const nl = nexline({ input: fs.createReadStream(path.resolve(__dirname, './data/brokenBuffer.txt'), { highWaterMark: 128 }), lineSeparator: os.EOL, }); while (true) { const line = await nl.next(); if (line === null) break; assert.strictEqual(line.length, 70, 'Length of each line is 70'); } });
// -- copyFile(path, newPath, flags) { return new Promise((res, rej) => { const readStream = fs.createReadStream(path), writeStream = fs.createWriteStream(newPath, {flags}); readStream.on("error", rej); writeStream.on("error", rej); writeStream.on("finish", res); readStream.pipe(writeStream); }); }
function cvsReader ( path, options ) { let finished = false const inp = fs.createReadStream( path ) const parser = csvParse( options )
it('Stream input', async () => { const nl = nexline({ input: fs.createReadStream(path.resolve(__dirname, './data/large.txt')), }); for (let i = 1; i <= 2000; i++) assert.strictEqual(true, (await nl.next()).startsWith(`Line ${i},`)); assert.strictEqual(null, await nl.next(), 'After 2000 lines read, returns null'); });