You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					57 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					57 lines
				
				1.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								var assert = require('assert');
							 | 
						||
| 
								 | 
							
								var multipartser = require('multipartser'),
							 | 
						||
| 
								 | 
							
								    boundary = '-----------------------------168072824752491622650073',
							 | 
						||
| 
								 | 
							
								    parser = multipartser(),
							 | 
						||
| 
								 | 
							
								    mb = 100,
							 | 
						||
| 
								 | 
							
								    buffer = createMultipartBuffer(boundary, mb * 1024 * 1024),
							 | 
						||
| 
								 | 
							
								    callbacks =
							 | 
						||
| 
								 | 
							
								      { partBegin: -1,
							 | 
						||
| 
								 | 
							
								        partEnd: -1,
							 | 
						||
| 
								 | 
							
								        headerField: -1,
							 | 
						||
| 
								 | 
							
								        headerValue: -1,
							 | 
						||
| 
								 | 
							
								        partData: -1,
							 | 
						||
| 
								 | 
							
								        end: -1,
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								parser.boundary( boundary );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								parser.on( 'part', function ( part ) {
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								parser.on( 'end', function () {
							 | 
						||
| 
								 | 
							
								  //console.log( 'completed parsing' );
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								parser.on( 'error', function ( error ) {
							 | 
						||
| 
								 | 
							
								  console.error( error );
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var start = +new Date(),
							 | 
						||
| 
								 | 
							
								    nparsed = parser.data(buffer),
							 | 
						||
| 
								 | 
							
								    nend = parser.end(),
							 | 
						||
| 
								 | 
							
								    duration = +new Date - start,
							 | 
						||
| 
								 | 
							
								    mbPerSec = (mb / (duration / 1000)).toFixed(2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								console.log(mbPerSec+' mb/sec');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//assert.equal(nparsed, buffer.length);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createMultipartBuffer(boundary, size) {
							 | 
						||
| 
								 | 
							
								  var head =
							 | 
						||
| 
								 | 
							
								        '--'+boundary+'\r\n'
							 | 
						||
| 
								 | 
							
								      + 'content-disposition: form-data; name="field1"\r\n'
							 | 
						||
| 
								 | 
							
								      + '\r\n'
							 | 
						||
| 
								 | 
							
								    , tail = '\r\n--'+boundary+'--\r\n'
							 | 
						||
| 
								 | 
							
								    , buffer = new Buffer(size);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  buffer.write(head, 'ascii', 0);
							 | 
						||
| 
								 | 
							
								  buffer.write(tail, 'ascii', buffer.length - tail.length);
							 | 
						||
| 
								 | 
							
								  return buffer;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								process.on('exit', function() {
							 | 
						||
| 
								 | 
							
								  /*for (var k in callbacks) {
							 | 
						||
| 
								 | 
							
								    assert.equal(0, callbacks[k], k+' count off by '+callbacks[k]);
							 | 
						||
| 
								 | 
							
								  }*/
							 | 
						||
| 
								 | 
							
								});
							 |