qiniu-js
Version:
Javascript SDK for Qiniu Resource (Cloud) Storage AP
65 lines (64 loc) • 2.1 kB
TypeScript
import { InternalConfig } from './base';
export declare class Host {
host: string;
protocol: InternalConfig['upprotocol'];
constructor(host: string, protocol: InternalConfig['upprotocol']);
/**
* @description 当前 host 是否为冻结状态
*/
isFrozen(): boolean;
/**
* @param {number} time 单位秒,默认 20s
* @description 冻结该 host 对象,该 host 将在指定时间内不可用
*/
freeze(time?: number): void;
/**
* @description 解冻该 host
*/
unfreeze(): void;
/**
* @description 获取当前 host 的完整 url
*/
getUrl(): string;
/**
* @description 获取解冻时间
*/
getUnfreezeTime(): number | undefined;
}
export declare class HostPool {
private initHosts;
/**
* @description 缓存的 host 表,以 bucket 和 accessKey 作为 key
*/
private cachedHostsMap;
/**
* @param {string[]} initHosts
* @description 如果在构造时传入 initHosts,则该 host 池始终使用传入的 initHosts 做为可用的数据
*/
constructor(initHosts?: string[]);
/**
* @param {string} accessKey
* @param {string} bucketName
* @param {string[]} hosts
* @param {InternalConfig['upprotocol']} protocol
* @returns {void}
* @description 注册可用 host
*/
private register;
/**
* @param {string} accessKey
* @param {string} bucketName
* @param {InternalConfig['upprotocol']} protocol
* @returns {Promise<void>}
* @description 刷新最新的 host 数据,如果用户在构造时该类时传入了 host 或者已经存在缓存则不会发起请求
*/
private refresh;
/**
* @param {string} accessKey
* @param {string} bucketName
* @param {InternalConfig['upprotocol']} protocol
* @returns {Promise<Host | null>}
* @description 获取一个可用的上传 Host,排除已冻结的
*/
getUp(accessKey: string, bucketName: string, protocol: InternalConfig['upprotocol']): Promise<Host | null>;
}