diff --git a/package.json b/package.json index 04941cc..c5b8eae 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "@kevisual/oss", - "version": "0.0.5", - "description": "", + "version": "0.0.8", "main": "dist/index.js", "scripts": { "build": "tsup", diff --git a/src/index.ts b/src/index.ts index 9eaf6df..57183ad 100644 --- a/src/index.ts +++ b/src/index.ts @@ -73,19 +73,29 @@ export class OssBase implements OssBaseOperation { * @param options 如果文件本身存在,则复制原有的meta的内容 * @returns */ - async putObject(objectName: string, data: Buffer | string | Object, metaData: ItemBucketMetadata = {}, options?: { check?: boolean }) { + async putObject( + objectName: string, + data: Buffer | string | Object, + metaData: ItemBucketMetadata = {}, + opts?: { check?: boolean; isStream?: boolean; size?: number }, + ) { let putData: Buffer | string; - let size: number; - if (typeof data === 'object') { - putData = JSON.stringify(data); - size = putData.length; - } else if (typeof data === 'string') { - putData = data; - size = putData.length; + 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') { + putData = data; + size = putData.length; + } else { + putData = data; + } } else { - putData = data; + putData = data as any; } - if (options?.check) { + if (opts?.check) { const obj = await this.statObject(objectName, true); if (obj) { metaData = {