@nos-sdk/nos-node-sdk
Version:
NOS Node.js SDK实现了NOS对象操作接口,基于此SDK能方便快速地实现JavaScript应用程序来使用NOS的对象存储服务。
88 lines (87 loc) • 2.75 kB
TypeScript
/// <reference types="node" />
import { OperateObjectParams, OperateOptionalBucketParams } from './object';
import { ListOperationResponse } from './request';
export interface InitMultipartUploadParams extends OperateObjectParams {
}
export interface MultipartUploadParams extends OperateObjectParams {
uploadId: string;
}
export interface AbortMultipartUploadParams extends MultipartUploadParams {
}
export interface UploadMultipartParams extends MultipartUploadParams {
partNumber: number;
body: Buffer;
}
export interface ListPartsOptions extends MultipartUploadParams {
limit?: number;
marker?: number;
}
export interface ListPartsResult extends ListOperationResponse<Part, number> {
bucket: string;
owner: {
id: string;
displayName: string;
};
storageClass: string;
}
export interface CompleteMultipartParams extends MultipartUploadParams {
parts: Array<Pick<Part, 'partNumber' | 'eTag'>>;
}
export interface ListMultipartParams extends OperateOptionalBucketParams {
limit?: number;
marker?: string;
prefix?: string;
}
export interface ListMultipartResult extends ListOperationResponse<MultipartUpload> {
bucket: string;
}
export interface Part {
partNumber: number;
lastModified: Date;
eTag: string;
size: number;
}
export interface MultipartUpload {
key: string;
uploadId: string;
storageClass: string;
initiated: Date;
}
export interface MultipartUploadObject {
eTag: string;
bucket: string;
key: string;
location: string;
}
export interface Progress {
lengthComputable: boolean;
uploaded: number;
total: number;
}
export interface PutBigObjectBaseParams extends OperateObjectParams {
maxPart?: number;
/**
* 当有块上传完成的时候,会调用 onProgress 回调,并传入进度信息,可以依据这个信息做一些定制化的操作。
* 虽然回调不是很优雅,但也不失为一种办法
* @param progress 进度信息。
*/
onProgress?: (progress: Progress) => void;
/**
* 并行上传的数量,默认是不限制的,也就是 Infinity,
*/
parallel?: number;
}
export interface PutBigObjectFileParams {
/**
* 文件名
*/
file: string;
}
export interface PutBigObjectStreamParams {
/**
* 需要上传的大文件。只支持读取流,不支持 Buffer。
* 原因是因为一个大文件的 Buffer 会占用大量内存,这是不可接受的。
*/
body: NodeJS.ReadableStream;
}
export declare type PutBigObjectParams = (PutBigObjectFileParams | PutBigObjectStreamParams) & PutBigObjectBaseParams;