This commit is contained in:
2025-12-03 17:21:17 +08:00
parent 7e3b748d30
commit 8150bb6177
5 changed files with 38 additions and 26 deletions

View File

@@ -84,18 +84,20 @@ export class OssBase implements OssBaseOperation {
let size: number = opts?.size;
const isStream = opts?.isStream;
if (!isStream) {
if (data instanceof Object) {
putData = JSON.stringify(data);
size = putData.length;
} else if (typeof data === 'string') {
if (typeof data === 'string') {
putData = data;
size = putData.length;
} else {
putData = data;
putData = JSON.stringify(data);
size = putData.length;
}
} else {
putData = data as any;
size = null;
// 对于流式上传,如果没有提供 size会导致多部分上传ETag 会是 ****-1 格式
// 必须提供准确的 size 才能得到标准的 MD5 格式 ETag
if (!size) {
throw new Error('Stream upload requires size parameter to avoid multipart upload and get standard MD5 ETag');
}
}
if (opts?.check) {
const obj = await this.statObject(objectName, true);