@terascope/file-asset-apis / s3/s3-reader-api / S3TerasliceAPI
Class: S3TerasliceAPI
Defined in: s3/s3-reader-api.ts:13
Extends
Constructors
Constructor
new S3TerasliceAPI(
client,config,logger):S3TerasliceAPI
Defined in: s3/s3-reader-api.ts:17
Parameters
| Parameter | Type |
|---|---|
client | S3Client |
config | ReaderConfig |
logger | Logger |
Returns
S3TerasliceAPI
Overrides
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
bucket | readonly | string | S3Fetcher.bucket | s3/s3-fetcher.ts:9 |
client | protected | S3Client | S3Fetcher.client | s3/s3-fetcher.ts:8 |
compressor | public | Compressor | S3Fetcher.compressor | base/chunked-file-reader.ts:74 |
filePerSlice | protected | boolean | S3Fetcher.filePerSlice | base/chunked-file-reader.ts:83 |
logger | public | Logger | S3Fetcher.logger | base/chunked-file-reader.ts:73 |
segmentFileConfig | readonly | SliceConfig | - | s3/s3-reader-api.ts:14 |
slicerConfig | readonly | FileSliceConfig | - | s3/s3-reader-api.ts:15 |
Accessors
format
Get Signature
get format():
Format
Defined in: base/chunked-file-reader.ts:127
Returns
Inherited from
lineDelimiter
Get Signature
get lineDelimiter():
string
Defined in: base/chunked-file-reader.ts:123
Returns
string
Inherited from
Methods
canReadFile()
canReadFile(
filePath):boolean
Defined in: s3/s3-reader-api.ts:40
Determines if a file name or file path can be processed, it will return false if the name of path contains a segment that starts with "."
Parameters
| Parameter | Type |
|---|---|
filePath | string |
Returns
boolean
csv()
protectedcsv(incomingData,slice):Promise<(null|DataEntity<Record<string,any>,_DataEntityMetadata<Record<string,any>>>)[]>
Defined in: base/chunked-file-reader.ts:233
Parameters
| Parameter | Type |
|---|---|
incomingData | string |
slice | FileSlice |
Returns
Promise<(null | DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>)[]>
Inherited from
fetch()
protectedfetch(slice):Promise<string>
Defined in: s3/s3-fetcher.ts:27
low level api that fetches the unprocessed contents of the file, please use the "read" method for correct file and data parsing
Parameters
| Parameter | Type |
|---|---|
slice | FileSlice |
Returns
Promise<string>
Example
const slice = { offset: 0, length: 1000, path: 'some/file.txt', total: 1000 };
const results = await s3Reader.fetch(slice);
results === 'the unprocessed contents of the file here'
Inherited from
getMargin()
protectedgetMargin(slice,delimiter):Promise<string>
Defined in: base/chunked-file-reader.ts:200
Parameters
| Parameter | Type |
|---|---|
slice | FileSlice |
delimiter | string |
Returns
Promise<string>
Inherited from
json()
protectedjson(incomingData,slice):Promise<(null|DataEntity<Record<string,any>,_DataEntityMetadata<Record<string,any>>>)[]>
Defined in: base/chunked-file-reader.ts:294
Parameters
| Parameter | Type |
|---|---|
incomingData | string |
slice | FileSlice |
Returns
Promise<(null | DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>)[]>
Inherited from
ldjson()
protectedldjson(incomingData,slice):Promise<(null|DataEntity<Record<string,any>,_DataEntityMetadata<Record<string,any>>>)[]>
Defined in: base/chunked-file-reader.ts:320
Parameters
| Parameter | Type |
|---|---|
incomingData | string |
slice | FileSlice |
Returns
Promise<(null | DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>)[]>
Inherited from
makeSlicer()
makeSlicer():
Promise<() =>Promise<null|FileSlice[]>>
Defined in: s3/s3-reader-api.ts:101
Generates a function that will resolve one or more slices each time it is called.
These slices will can be used to "fetch" chunks of data. Returns null when complete
Returns
Promise<() => Promise<null | FileSlice[]>>
Example
const config = {
size: 1000,
file_per_slice: false,
line_delimiter: '\n',
size: 300,
format: "ldjson"
path: 'some/dir'
}
const s3Reader = new S3Reader(config);
const slicer = await s3Reader.newSlicer();
const results = await slicer();
results === [
{ offset: 0, length: 1000, path: 'some/dir/file.txt', total: 1000 }
]
raw()
protectedraw(incomingData,slice):Promise<(null|DataEntity<Record<string,any>,_DataEntityMetadata<Record<string,any>>>)[]>
Defined in: base/chunked-file-reader.ts:224
Parameters
| Parameter | Type |
|---|---|
incomingData | string |
slice | FileSlice |
Returns
Promise<(null | DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>)[]>
Inherited from
read()
read(
slice):Promise<DataEntity<Record<string,any>,_DataEntityMetadata<Record<string,any>>>[]>
Defined in: base/chunked-file-reader.ts:334
Parameters
| Parameter | Type |
|---|---|
slice | FileSlice |
Returns
Promise<DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>[]>
Inherited from
segmentFile()
segmentFile(
file):FileSlice[]
Defined in: s3/s3-reader-api.ts:73
Used to slice up a file based on the configuration provided
The returned results can be used directly with any "read" method of a reader API
Parameters
| Parameter | Type |
|---|---|
file | { path: string; size: number; } |
file.path | string |
file.size | number |
Returns
Example
const slice = { path: 'some/path', size: 1000 };
const config = {
file_per_slice: false,
line_delimiter: '\n',
size: 300,
format: Format.ldjson
};
const results = s3Reader.segmentFile(slice, config);
results === [
{
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
}
]
tsv()
protectedtsv(incomingData,slice):Promise<(null|DataEntity<Record<string,any>,_DataEntityMetadata<Record<string,any>>>)[]>
Defined in: base/chunked-file-reader.ts:288
Parameters
| Parameter | Type |
|---|---|
incomingData | string |
slice | FileSlice |
Returns
Promise<(null | DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>)[]>