UNPKG

ts-api-core

Version:

Nodejs api framework core

161 lines (160 loc) 5.49 kB
/// <reference types="node" /> import { BaseObject } from '../../context/base.object'; import { RequestContext } from '../../context/request.context'; import { IOssConfig } from '../../database/db.oss.config'; /** * oss 选项信息 */ export interface OSSOptions { /** * 凭证id */ accessKeyId: string; /** * 凭证secret */ accessKeySecret: string; /** * bucket所在region */ region: string; /** * 临时凭证 */ stsToken?: string; /** * bucket */ bucket: string; endpoint?: string; } export declare class OssObjectDTO { etag: string; name: string; size: number; type: string; url: string; } /** 阿里云 OSS 服务类 */ export declare class OssAccess extends BaseObject<RequestContext> implements IOssAccess { private _alioss; private _oss; readonly config: OSSOptions; private get oss(); private get alioss(); /** * 阿里云 OSS 管理服务类 * @param context 上下文对象 * @param accessKeyId 凭证id * @param accessKeySecret 凭证secret * @param region bucket所在region * @param bucket bucket */ constructor(context: RequestContext, config: IOssConfig); /** * 把文件从一个bucket搬移到另外一个bucket 文件名称保持不变 * @param fileName 文件名称 * @param fromBucket 源bucket */ move(fileName: string, fromBucket: string): Promise<boolean>; /** * 从bucket里面删除一个文件 * @param fileName 文件名称 */ remove(fileName: string): Promise<boolean>; /** * 上传文件 * @param fileName 上传到bucket的文件名称 * @param localFile 本地文件的路径 */ upload(fileName: string, localFile: string): Promise<boolean>; /** * 流式上传 * @param fileName 上传到bucket的文件名称 * @param stream NodeJS.ReadableStream 流 */ uploadStream(fileName: string, stream: NodeJS.ReadableStream): Promise<boolean>; /** * 流式上传指定 url * @param fileName 上传到bucket的文件名称 * @param url 来源数据URL * @returns 返回上传的数据大小 */ uploadUrlDownload(fileName: string, url: string | undefined): Promise<number>; /** * 上传内存数据 * @param fileName 上传到bucket的文件名称 * @param buffer Buffer 数据, new Buffer("xxx") */ uploadBuffer(fileName: string, buffer: Buffer): Promise<boolean>; /** 获取下载地址 */ getDownloadUrl(fileName: string): string; /** * 获取指定路径下所有文件名 * @param path 文件路径,如果指定,需要 "/" 结尾 * @returns */ getFileList(path: string): Promise<OssObjectDTO[]>; /** * 获取oss上传临时凭证 * @param roleArn oss角色,在阿里云账号中心可以找到 * @param expire 凭证有效期 单位秒 调用方应该把这个凭证缓存起来,不用每次都获取新的token 最小 900秒,最大3600秒 * @param session 应用名称 */ getStsToken(roleArn: string, expire?: number, session?: string): Promise<OSSOptions>; } /** 阿里云 OSS 数据通道 */ export interface IOssAccess { readonly config: IOssConfig; /** * 把文件从一个bucket搬移到另外一个bucket 文件名称保持不变 * @param fileName 文件名称 * @param fromBucket 源bucket */ move: (fileName: string, fromBucket: string) => Promise<boolean>; /** * 从bucket里面删除一个文件 * @param fileName 文件名称 */ remove: (fileName: string) => Promise<boolean>; /** * 上传文件 * @param fileName 上传到bucket的文件名称 * @param localFile 本地文件的路径 */ upload: (fileName: string, localFile: string) => Promise<boolean>; /** * 流式上传 * @param fileName 上传到bucket的文件名称 * @param stream NodeJS.ReadableStream 流 */ uploadStream: (fileName: string, stream: NodeJS.ReadableStream) => Promise<boolean>; /** * 流式上传指定 url * @param fileName 上传到bucket的文件名称 * @param url 来源数据URL * @returns 返回上传的数据大小 */ uploadUrlDownload: (fileName: string, url: string | undefined) => Promise<number>; /** * 上传内存数据 * @param fileName 上传到bucket的文件名称 * @param buffer Buffer 数据, new Buffer("xxx") */ uploadBuffer: (fileName: string, buffer: Buffer) => Promise<boolean>; /** 获取下载地址 */ getDownloadUrl: (fileName: string) => string; /** * 获取指定路径下所有文件名 * @param path 文件路径,如果指定,需要 "/" 结尾 * @returns */ getFileList: (path: string) => Promise<OssObjectDTO[]>; /** * 获取oss上传临时凭证 * @param roleArn oss角色,在阿里云账号中心可以找到 * @param expire 凭证有效期 单位秒 调用方应该把这个凭证缓存起来,不用每次都获取新的token 最小 900秒,最大3600秒 * @param session 应用名称 */ getStsToken: (roleArn: string, expire?: number, session?: string) => Promise<OSSOptions>; }