跳到主要内容

RxDBBackupArchiveWriter

Defined in: packages/rxdb/src/backup/backup-archive.ts:135

流式归档写入器。

Remarks​

调用顺序固定:writeManifest → 若干(beginEntry → writeData*)→ finish。 违反顺序、路径不安全或写入字节与声明不符都报 invalid_state——这些是生产方的 bug, 不能写出一个读取方必然拒绝的归档。写入器不关闭底层流,close() / abort() 由调用方决定。 任何一步失败后写入器作废,后续调用一律 invalid_state。

Example​

const writer = new RxDBBackupArchiveWriter(sink.getWriter(), signal);
await writer.writeManifest(manifest);
await writer.beginEntry({ path: 'PG_VERSION', kind: 'file', size: bytes.length });
await writer.writeData(bytes);
const trailer = await writer.finish();

Constructors​

Constructor​

new RxDBBackupArchiveWriter(sink, signal?): RxDBBackupArchiveWriter;

Defined in: packages/rxdb/src/backup/backup-archive.ts:145

Parameters​

ParameterType
sinkWritableStreamDefaultWriter<Uint8Array<ArrayBufferLike>>
signal?AbortSignal

Returns​

RxDBBackupArchiveWriter

Methods​

beginEntry()​

beginEntry(header): Promise<void>;

Defined in: packages/rxdb/src/backup/backup-archive.ts:170

开始一个条目。上一个文件必须已写满声明的字节数。

Parameters​

ParameterTypeDescription
headerRxDBBackupEntryHeader条目头

Returns​

Promise<void>


finish()​

finish(): Promise<RxDBBackupTrailer>;

Defined in: packages/rxdb/src/backup/backup-archive.ts:209

写结束标记。结束标记本身不进摘要。

Returns​

Promise<RxDBBackupTrailer>

结束标记内容


writeData()​

writeData(bytes): Promise<void>;

Defined in: packages/rxdb/src/backup/backup-archive.ts:192

写当前文件的一段数据;超过 RXDB_BACKUP_CHUNK_SIZE 的输入会被切成多帧。 输入缓冲区只读不改,返回后调用方可以复用。

Parameters​

ParameterTypeDescription
bytesUint8Array数据

Returns​

Promise<void>


writeManifest()​

writeManifest(manifest): Promise<void>;

Defined in: packages/rxdb/src/backup/backup-archive.ts:155

写魔数与 manifest。必须是第一次调用。

Parameters​

ParameterTypeDescription
manifestRxDBBackupManifest归档元数据

Returns​

Promise<void>