补齐归档清单上传限速

让已有全量归档的 manifest 继承同一上传带宽限制器
收紧并发上传共享累计带宽预算测试
This commit is contained in:
2026-07-16 19:02:42 +08:00
parent 947f59c894
commit 0253a35e72
2 changed files with 3 additions and 5 deletions
+2 -5
View File
@@ -152,13 +152,11 @@ async function assertUploadBandwidthLimiterSharesBudgetAndPropagatesErrors() {
'必须为空、0 或 >= 1024 的整数',
'上传带宽限制必须拒绝过小值。',
);
let nowMs = 0;
const delays = [];
const limiter = createUploadBandwidthLimiter(1024, {
nowFn: () => nowMs,
nowFn: () => 0,
sleepImpl: async (delayMs) => {
delays.push(delayMs);
nowMs += delayMs;
},
});
const consume = async (stream) => {
@@ -173,8 +171,7 @@ async function assertUploadBandwidthLimiterSharesBudgetAndPropagatesErrors() {
consume(limiter.wrap(Readable.from([Buffer.alloc(1024), Buffer.alloc(1024)], {objectMode: false}))),
]);
assertEqual(firstBytes + secondBytes, 4096, '共享上传限速器不得丢失并发流内容。');
assertEqual(nowMs, 4000, '两个并发上传流必须共享同一个带宽预算。');
assertEqual(delays.reduce((sum, delayMs) => sum + delayMs, 0), 4000, '共享上传限速器必须预约完整字节时长。');
assertEqual(delays.join(','), '1000,2000,3000,4000', '两个并发上传流必须共享同一个累计带宽预算。');
let sourceError = null;
try {
+1
View File
@@ -2630,6 +2630,7 @@ async function uploadExistingArchive({args, env, bucket, endpoint, accessKeyId,
objectKey: uploadedManifest.manifestObjectKey,
accessKeyId,
accessKeySecret,
bandwidthLimiter,
});
uploadedManifest.manifestVerifiedAt = manifestUpload.verifiedAt;
uploadedManifest.manifestContentLength = manifestUpload.contentLength;