Skip to main content

@terascope/file-asset-apis / base/slice

base/slice

Functions

canReadFile()

canReadFile(fileName): boolean

Defined in: base/slice.ts:110

Determines if a file name or file path can be processed, it will return false if the path includes a segment that starts with a "."

Parameters

ParameterType
fileNamestring

Returns

boolean

Example

canReadFile('file.txt')  => true
canReadFile('some/path/file.txt') => true
canReadFile('some/.private_path/file.txt') => false

getOffsets()

getOffsets(size, total, delimiter): Offsets[]

Defined in: base/slice.ts:71

Used to calculate the offsets of a file, this is a lower level API, prefer to use segmentFile over this as it is a higher level API

Parameters

ParameterType
sizenumber
totalnumber
delimiterstring

Returns

Offsets[]


parsePath()

parsePath(objPath): object

Defined in: base/slice.ts:125

Parses the provided path and translates it to a bucket/prefix combo

Primarily a helper for s3 operations

Parameters

ParameterType
objPathstring

Returns

object

bucket

bucket: string

prefix

prefix: string


segmentFile()

segmentFile(file, config): FileSlice[]

Defined in: base/slice.ts:38

Used to slice up a file based on the configuration provided, this is a higher level API, prefer this over getOffsets as that is a lower level API

The returned results can be used directly with any "read" method of a reader API

Parameters

ParameterType
file{ path: string; size: number; }
file.pathstring
file.sizenumber
configSliceConfig

Returns

FileSlice[]

Example

const slice = { path: 'some/path', size: 1000 };
const config = {
file_per_slice: false,
line_delimiter: '\n',
size: 300,
format: Format.ldjson
};

const results = segmentFile(slice, config);

// outputs => [
{
offset: 0, length: 300, path: 'some/path', total: 1000
},
offset: 299, length: 301, path: 'some/path', total: 1000
},
offset: 599, length: 301, path: 'some/path', total: 1000
},
{
offset: 899, length: 101, path: 'some/path', total: 1000
}
]