Chuẩn bị
Lập bản kê và băm từng tệp; giữ đường dẫn tương đối.
Niêm phong bản kê, chuyển lô nguyên tử và đối soát từng mục trước khi xác nhận hoàn tất.
Đây là quy ước đầu nối mục tiêu để thỏa thuận triển khai, chưa phải SFTP endpoint được cấp hoặc một phần mở rộng đã nghiệm thu của REST API.
Lập bản kê và băm từng tệp; giữ đường dẫn tương đối.
Chuyển vào vùng tạm, không tiếp nhận tệp đang ghi.
Đổi tên nguyên tử hoặc tín hiệu hoàn tất theo cấu hình.
Kiểm tra quyền, đường dẫn, MIME, băm và khóa chống lặp từng mục.
Trả kết quả từng mục và liên kết archiveId/jobId.
Chỉ xác nhận hoàn tất khi mọi mục đã rõ kết quả.
batch-test-001/
manifest.json
payload/record.txt
payload/record-2.txt
COMPLETE # optional deployment-agreed marker{
"format": "ltans-batch-target-1",
"batchId": "batch-test-001",
"sourceSystem": "synthetic-dms",
"closedAt": "2026-10-15T07:00:00Z",
"items": [
{
"sourceId": "record-test-001",
"path": "payload/record.txt",
"mimeType": "text/plain",
"digest": {
"algorithm": "SHA-256",
"value": "e436e77069edf8e8304082264f9307846d4847c55e249d17560dcdcde49385b8"
},
"profileId": "profile-test-01",
"policyId": "policy-test-v1"
},
{
"sourceId": "record-test-002",
"path": "payload/record-2.txt",
"mimeType": "text/plain",
"digest": {
"algorithm": "SHA-256",
"value": "1ce3381cd3564715e1aff7426b16e48409930a4713913d91a472f62dab322eb5"
},
"profileId": "profile-test-01",
"policyId": "policy-test-v1"
}
]
}Biên nhận dưới minh họa ca âm: tệp thứ hai bị sửa sau khi chốt bản kê. Bộ mẫu samples/batch-target giữ dữ liệu hợp lệ ban đầu; chưa có backend phát sinh biên nhận này.
{
"batchId": "batch-test-001",
"state": "PARTIAL",
"items": [
{
"sourceId": "record-test-001",
"state": "ACCEPTED",
"archiveId": "arc-test-001"
},
{
"sourceId": "record-test-002",
"state": "REJECTED",
"code": "SOURCE_DIGEST_MISMATCH"
}
]
}