UNPKG

@nos-sdk/nos-node-sdk

Version:

NOS Node.js SDK实现了NOS对象操作接口,基于此SDK能方便快速地实现JavaScript应用程序来使用NOS的对象存储服务。

88 lines (87 loc) 2.75 kB
/// <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;