四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1044 lines
34 KiB

3 years ago
/**
* typescript definition for qiniu 7.0.2
* @date 2017-06-27
* @author xialeistudio<xialeistudio@gmail.com>
*/
import { Callback } from 'urllib';
export declare type callback = (e?: Error, respBody?: any, respInfo?: any) => void;
export declare namespace auth {
namespace digest {
interface MacOptions {
disableQiniuTimestampSignature?: boolean;
}
class Mac {
accessKey: string;
secretKey: string;
constructor(accessKey?: string, secretKey?: string, options?: MacOptions);
}
}
}
export declare namespace cdn {
class CdnManager {
mac: auth.digest.Mac;
constructor(mac?: auth.digest.Mac);
/**
*
* @see http://developer.qiniu.com/article/fusion/api/log.html
*
* @param domains ['obbid7qc6.qnssl.com','7xkh68.com1.z0.glb.clouddn.com']
* @param logDay logDay 2016-07-01
* @param callback callbackFunc(err, respBody, respInfo)
*/
getCdnLogList(domains: string[], logDay: string, callback: callback): void;
/**
* 访
* @see http://developer.qiniu.com/article/fusion/api/traffic-bandwidth.html#batch-flux
*
* @param startDate 2016-07-01
* @param endDate 2016-07-03
* @param granularity 5minhourday
* @param domains domain = ['obbid7qc6.qnssl.com','obbid7qc6.qnssl.com'];
* @param callback callbackFunc(err, respBody, respInfo)
*/
getFluxData(startDate: string, endDate: string, granularity: string, domains: string[], callback: callback): void;
/**
*
* @see http://developer.qiniu.com/article/fusion/api/traffic-bandwidth.html#batch-flux
* @param startDate 2016-07-01
* @param endDate 2016-07-03
* @param granularity 5minhourday
* @param domains domain = ['obbid7qc6.qnssl.com','obbid7qc6.qnssl.com'];
* @param callback callbackFunc(err, respBody, respInfo)
*/
getBandwidthData(startDate: string, endDate: string, granularity: string, domains: string[], callback: callback): void;
/**
*
* @see http://developer.qiniu.com/article/fusion/api/prefetch.html
*
* @param urls urls urls = ['http://obbid7qc6.qnssl.com/023','http://obbid7qc6.qnssl.com/025']
* @param callback callbackFunc(err, respBody, respInfo)
*/
prefetchUrls(urls: string[], callback: callback): void;
/**
*
* @see http://developer.qiniu.com/article/fusion/api/refresh.html
*
* @param urls refreshUrls = ['http://obbid7qc6.qnssl.com/023','http://obbid7qc6.qnssl.com/025']
* @param callback callbackFunc(err, respBody, respInfo)
*/
refreshUrls(urls: string[], callback: callback): void;
/**
* 10,
* @see http://developer.qiniu.com/article/fusion/api/refresh.html
*
* @param dirs refreshDirs = ['http://obbid7qc6.qnssl.com/wo/','http://obbid7qc6.qnssl.com/']
* @param callback callbackFunc(err, respBody, respInfo)
*/
refreshDirs(dirs: string[], callback: callback): void;
/**
*
* @param urls refreshUrls = ['http://obbid7qc6.qnssl.com/023','http://obbid7qc6.qnssl.com/025']
* @param dirs refreshDirs = ['http://obbid7qc6.qnssl.com/wo/','http://obbid7qc6.qnssl.com/']
* @param callback callbackFunc(err, respBody, respInfo)
*/
refreshUrlsAndDirs(urls: string[], dirs: string[], callback: callback): void;
/**
*
* @param domain http://img.abc.com
* @param fileName 访utf8编码urlencode
* @param query utf8编码urlencode, {aa:"23", attname:"11111111111111"}
* @param encryptKey
* @param deadline Unix时间戳
* @return signedUrl url
*/
createTimestampAntiLeechUrl(domain: string, fileName: string, query: any, encryptKey: string, deadline: number): string;
}
}
export declare namespace conf {
let ACCESS_KEY: string;
let SECRET_KEY: string;
let USER_AGENT: string;
let BLOCK_SIZE: number;
let FormMimeUrl: string;
let FormMimeJson: string;
let FormMimeRaw: string;
let RS_HOST: string;
let RPC_TIMEOUT: number;
interface ConfigOptions {
/**
* @default false
*/
useHttpsDomain?: boolean;
/**
* @default true
*/
useCdnDomain?: boolean;
/**
* @default null
*/
zone?: Zone,
/**
* @default -1
*/
zoneExpire?: number;
}
class Config implements ConfigOptions {
constructor(options?: ConfigOptions);
}
class Zone {
srcUpHosts: any;
cdnUpHosts: any;
ioHost: string;
rsHost: string;
rsfHost: string;
apiHost: string;
constructor(srcUpHosts?: any, cdnUpHosts?: any, ioHost?: string, rsHost?: string, rsfHost?: string, apiHost?: string);
}
}
export declare namespace form_up {
class FormUploader {
conf: conf.Config;
constructor(config?: conf.Config);
/**
*
* @param uploadToken
* @param key
* @param rsStream
* @param putExtra
* @param callback
*/
putStream(uploadToken: string, key: string | null, rsStream: NodeJS.ReadableStream, putExtra: PutExtra | null, callback: callback): void;
/**
*
* @param uploadToken
* @param key
* @param body
* @param putExtra
* @param callback
*/
put(uploadToken: string, key: string | null, body: any, putExtra: PutExtra | null, callback: callback): void;
/**
*
* @param uploadToken
* @param body
* @param putExtra
* @param callback
*/
putWithoutKey(uploadToken: string, body: any, putExtra: PutExtra | null, callback: callback): void;
/**
*
* @param uploadToken
* @param key
* @param localFile
* @param putExtra
* @param callback
*/
putFile(uploadToken: string, key: string | null, localFile: string, putExtra: PutExtra | null, callback: callback): void;
/**
*
* @param uploadToken
* @param localFile
* @param putExtra
* @param callback
*/
putFileWithoutKey(uploadToken: string, localFile: string, putExtra: PutExtra | null, callback: callback): void;
}
class PutExtra {
/**
* @default ''
*/
fname: string;
/**
* @default {}
*/
params: any;
/**
* @default null
*/
mimeType?: string;
/**
* @default null
*/
crc32?: string;
/**
* @default 0|false
*/
checkCrc?: number | boolean;
/**
* @default {}
*/
metadata?: Record<string, string>;
/**
*
* @param fname
* @param params 参数名称必须以x:开头
* @param mimeType mimeType
* @param crc32 crc32值
* @param checkCrc crc32值
* @param metadata x-qn-meta-${name}:
*/
constructor(fname?: string, params?: Record<string, string>, mimeType?: string, crc32?: string, checkCrc?: number | boolean, metadata?: Record<string, string>);
}
}
export declare namespace resume_up {
class ResumeUploader {
config: conf.Config;
constructor(config?: conf.Config);
/**
*
* @param uploadToken
* @param key
* @param rsStream
* @param rsStreamLen
* @param putExtra
* @param callback
*/
putStream(uploadToken: string, key: string | null, rsStream: NodeJS.ReadableStream, rsStreamLen: number, putExtra: PutExtra | null, callback: callback): void;
/**
*
* @param uploadToken
* @param key
* @param localFile
* @param putExtra
* @param callback
*/
putFile(uploadToken: string, key: string | null, localFile: string, putExtra: PutExtra | null, callback: callback): void;
/**
*
* @param uploadToken
* @param localFile
* @param putExtra
* @param callback
*/
putFileWithoutKey(uploadToken: string, localFile: string, putExtra: PutExtra | null, callback: callback): void;
}
class PutExtra {
/**
* @default ''
*/
fname?: string;
/**
* @default {}
*/
params?: Record<string, string>;
/**
* @default null
*/
mimeType?: string;
/**
* @default null
*/
resumeRecordFile?: string
/**
* @default null
*/
progressCallback?: (uploadBytes: number, totalBytes: number) => void
/**
* @default v1
*/
version?: string
/**
* @default 4 * 1024 * 1024
*/
partSize?: number
/**
* @default {}
*/
metadata?: Record<string, string>
/**
*
* @param fname
* @param params 参数名称必须以x:开头
* @param mimeType mimeType
* @param resumeRecordFile
* @param progressCallback
* @param partSize v2必传字段 4MB 1 MB - 1 GB
* @param version v1/v2版本 v1
* @param metadata x-qn-meta-${name}:
*/
constructor(fname?: string, params?: Record<string, string>, mimeType?: string, resumeRecordFile?: string,
progressCallback?: (uploadBytes: number, totalBytes: number) => void,
partSize?:number, version?:string, metadata?: Record<string, string>);
}
}
export declare namespace util {
function isTimestampExpired(timestamp: number): boolean;
/**
* 使 UTC
*
* @param date new Date() 使 new Date(date)
* @param layout
* YYYY
* MM
* DD
* HH
* mm
* ss
* SSS
*/
function formatDateUTC(date: Date | number | string, layout?: string): string;
function encodedEntry(bucket: string, key?: string): string;
function getAKFromUptoken(uploadToken: string): string;
function getBucketFromUptoken(uploadToken: string): string;
function base64ToUrlSafe(v: string): string;
function urlSafeToBase64(v: string): string;
function urlsafeBase64Encode(jsonFlags: string): string;
function urlSafeBase64Decode(fromStr: string): string;
function hmacSha1(encodedFlags: string | Buffer, secretKey: string | Buffer): string;
function canonicalMimeHeaderKey(fieldName: string): string;
/**
* AccessToken凭证
* @param mac AK&SK对象
* @param requestURI URL
* @param reqBody BodyContentType为application/x-www-form-urlencoded
*/
function generateAccessToken(mac: auth.digest.Mac, requestURI: string, reqBody?: string): string;
/**
* AccessToken凭证
* @param mac AK&SK对象
* @param requestURI URL
* @param reqMethod GETPOST
* @param reqContentType application/json application/x-www-form-urlencoded
* @param reqBody Body ContentType application/json application/x-www-form-urlencoded
* @param reqHeaders Headers {"X-Qiniu-Name": "Qiniu", "Content-Type": "application/x-www-form-urlencoded"}
*/
function generateAccessTokenV2(mac: auth.digest.Mac, requestURI: string, reqMethod: string, reqContentType: string, reqBody?: string, reqHeaders?: Record<string, string>): string;
/**
* Authorization
* @param mac AK&SK对象
* @param requestURI URL中的requestURI
* @param reqBody URL中的requestURI BodyContentType为application/x-www-form-urlencoded时才需要传入该参数
* @param callbackAuth Authorization头部值
*/
function isQiniuCallback(mac: auth.digest.Mac, requestURI: string, reqBody: string | null, callbackAuth: string): boolean;
}
export declare namespace rpc {
type Headers = Record<string, string> & {
'User-Agent'?: string;
Connection?: string;
}
interface RequestOptions {
headers: Headers;
mac: auth.digest.Mac;
}
/**
*
* @param requestUrl
* @param headers headers
* @param callbackFunc
*/
function get(requestUrl: string, headers: Headers | null, callbackFunc: callback): void;
/**
* @param requestUrl
* @param options
* @param callbackFunc
*/
function getWithOptions(
requestUrl: string,
options: RequestOptions | null,
callbackFunc: callback
): ReturnType<typeof get>;
/**
*
* @param requestUrl
* @param token
* @param callbackFunc
*/
function getWithToken(requestUrl: string, token: string | null, callbackFunc: callback): void;
/**
*
* @param requestURI
* @param requestForm
* @param headers
* @param callback
*/
function post(requestURI: string, requestForm: Buffer | string | NodeJS.ReadableStream | null, headers: Headers | null, callback: callback): void;
/**
* @param requestUrl
* @param requestForm
* @param options
* @param callbackFunc
*/
function postWithOptions(
requestUrl: string,
requestForm: Buffer | string | NodeJS.ReadableStream | null,
options: RequestOptions | null,
callbackFunc: callback
): ReturnType<typeof post>;
/**
*
* @param requestURI
* @param requestForm
* @param callback
*/
function postMultipart(requestURI: string, requestForm: Buffer | string | NodeJS.ReadableStream | null, callback: callback): void;
/**
*
* @param requestURI
* @param requestForm
* @param token
* @param callback
*/
function postWithForm(requestURI: string, requestForm: Buffer | string | NodeJS.ReadableStream | null, token: string | null, callback: callback): void;
/**
*
* @param requestURI
* @param token
* @param callback
*/
function postWithoutForm(requestURI: string, token: string | null, callback: callback): void;
}
export declare namespace zone {
//huadong
const Zone_z0: conf.Zone;
//huabei
const Zone_z1: conf.Zone;
//huanan
const Zone_z2: conf.Zone;
//beimei
const Zone_na0: conf.Zone;
//Southeast Asia
const Zone_as0: conf.Zone;
}
export declare namespace fop {
interface PfopOptions {
/**
*
*/
notifyURL?: string;
/**
*
*/
force?: boolean;
}
class OperationManager {
mac: auth.digest.Mac;
config: conf.Config;
constructor(mac?: auth.digest.Mac, config?: conf.Config);
/**
*
* @param bucket
* @param key
* @param fops
* @param pipeline
* @param options
* @param callback
*/
pfop(bucket: string, key: string, fops: string[], pipeline: string, options: PfopOptions | null, callback: callback): void;
/**
*
* @param persistentId pfop操作返回的持久化处理ID
* @param callback
*/
prefop(persistentId: string, callback: callback): void;
}
}
export declare namespace rs {
interface ListPrefixOptions {
/**
*
*/
prefix?: string;
/**
*
*/
marker?: any;
/**
*
*/
limit?: number;
/**
*
*/
delimiter?: string;
}
class BucketManager {
mac: auth.digest.Mac;
config: conf.Config;
constructor(mac?: auth.digest.Mac, config?: conf.Config);
/**
*
* @see https://developer.qiniu.com/kodo/api/1308/stat
*
* @param bucket
* @param key
* @param callback
*/
stat(bucket: string, key: string, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1252/chgm
*
* @param bucket
* @param key
* @param newMime
* @param callback
*/
changeMime(bucket: string, key: string, newMime: string, callback: callback): void;
/**
* Headers
* @see TODO
*
* @param bucket
* @param key
* @param headers Headers对象
* @param callback
*/
changeHeaders(bucket: string, key: string, headers: { [k: string]: string }, callback: callback): void;
/**
* bucketSrc==bucketDest相同的时候
* @see https://developer.qiniu.com/kodo/api/1288/move
*
* @param srcBucket
* @param srcKey
* @param destBucket
* @param destKey
* @param options
* @param callback
*/
move(srcBucket: string, srcKey: string, destBucket: string, destKey: string, options: { force?: boolean } | null, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1254/copy
*
* @param srcBucket
* @param srcKey
* @param destBucket
* @param destKey
* @param options
* @param callback
*/
copy(srcBucket: string, srcKey: string, destBucket: string, destKey: string, options: { force?: boolean } | null, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1257/delete
*
* @param bucket
* @param key
* @param callback
*/
delete(bucket: string, key: string, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1732/update-file-lifecycle
*
* @param bucket
* @param key
* @param days
* @param callback
*/
deleteAfterDays(bucket: string, key: string, days: number, callback: callback): void;
/**
*
* @param { string } bucket -
* @param { string } key -
* @param { Object } options -
* @param { number } options.toIaAfterDays - -1 0
* @param { number } options.toArchiveAfterDays - -1 0
* @param { number } options.toDeepArchiveAfterDays - -1 0
* @param { number } options.deleteAfterDays - -1 0
* @param { Object } options.cond -
* @param { string } options.cond.hash
* @param { string } options.cond.mime
* @param { number } options.cond.fsize
* @param { number } options.cond.putTime
* @param { function } callbackFunc -
*/
setObjectLifeCycle(
bucket: string,
key: string,
options: {
toIaAfterDays?: number,
toArchiveAfterDays?: number,
toDeepArchiveAfterDays?: number,
deleteAfterDays?: number
cond?: {
hash?: string,
mime?: string,
fsize?: number,
putTime?: number
}
},
callbackFunc: callback
)
/**
*
* @param entry
* @param freezeAfterDays
* @param callbackFunc
*/
restoreAr(entry: string, freezeAfterDays: number, callbackFunc: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1263/fetch
*
* @param resUrl
* @param bucket
* @param key
* @param callback
*/
fetch(resUrl: string, bucket: string, key: string, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1293/prefetch
*
* @param bucket
* @param key
* @param callback
*/
prefetch(bucket: string, key: string, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/3710/modify-the-file-type
*
* @param bucket
* @param key
* @param newType 0 1
* @param callback
*/
changeType(bucket: string, key: string, newType: number, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1370/mirror
*
* @param bucket
* @param srcSiteUrl
* @param srcHost Host
* @param callback
*/
image(bucket: string, srcSiteUrl: string, srcHost: string, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1370/mirror
*
* @param bucket
* @param callback
*/
unimage(bucket: string, callback: callback): void;
/**
*
* @see https://developer.qiniu.com/kodo/api/1284/list
*
* @param bucket
* @param options
* @param callback
*/
listPrefix(bucket: string, options: ListPrefixOptions | null, callback: callback): void;
/**
* statchgmchtypedeletecopymove
* @param operations
* @param callback
*/
batch(operations: any, callback: callback): void;
/**
*
* @param domain http或https开头
* @param fileName
* @param deadline
*/
privateDownloadUrl(domain: string, fileName: string, deadline: number): string;
/**
*
* @param domain http或https开头
* @param fileName
*/
publicDownloadUrl(domain: string, fileName: string): string;
/**
* rules/add bucket
*
* @param bucket -
*
* @param options -
* @param options.name - bucket 50线
* @param options.prefix - bucket
* @param options.to_line_after_days - 00
* @param options.to_archive_after_days - 00
* @param options.to_deep_archive_after_days - 00
* @param options.delete_after_days - 00
* @param options.history_delete_after_days - 00
* @param options.history_to_line_after_days - 0
*
* @param callbackFunc -
*/
putBucketLifecycleRule(
bucket: string,
options: {
name: string,
prefix?: string,
to_line_after_days?: number,
to_archive_after_days?: number,
to_deep_archive_after_days?: number,
delete_after_days?: number,
history_delete_after_days?: number,
history_to_line_after_days?: number,
},
callbackFunc: callback
): void;
/** rules/delete bucket
* @param bucket -
* @param name - bucket 50线
* @param callbackFunc -
*/
deleteBucketLifecycleRule(bucket: string, name: string, callbackFunc: callback): void;
/**
* rules/update bucket
*
* @param bucket -
*
* @param options -
* @param options.name - bucket 50线
* @param options.prefix - bucket
* @param options.to_line_after_days - 00
* @param options.to_archive_after_days - 00
* @param options.to_deep_archive_after_days - 00
* @param options.delete_after_days - 00
* @param options.history_delete_after_days - 00
* @param options.history_to_line_after_days - 0
*
* @param callbackFunc -
*/
updateBucketLifecycleRule(
bucket: string,
options: {
name: string,
prefix?: string,
to_line_after_days?: number,
to_archive_after_days?: number,
to_deep_archive_after_days?: number,
delete_after_days?: number,
history_delete_after_days?: number,
history_to_line_after_days?: number,
},
callbackFunc: callback
): void;
/** rules/get - bucket
* @param bucket -
* @param callbackFunc -
*/
getBucketLifecycleRule(bucket: string, callbackFunc: callback): void
}
/**
*
* @param bucket
* @param key
*/
function statOp(bucket: string, key: string): string;
/**
*
* @param bucket
* @param key
*/
function deleteOp(bucket: string, key: string): string;
/**
*
* @param bucket
* @param key
* @param days
*/
function deleteAfterDaysOp(bucket: string, key: string, days: number): string;
/**
*
* @param bucket
* @param key
* @param newMime
*/
function changeMimeOp(bucket: string, key: string, newMime: string): string;
/**
*
* @param bucket
* @param key
* @param headers
*/
function changeHeadersOp(bucket: string, key: string, headers: { [k: string]: string }): string;
/**
*
* @param bucket
* @param key
* @param newType
*/
function changeTypeOp(bucket: string, key: string, newType: number): string;
/**
*
* @param srcBucket
* @param srcKey
* @param destBucket
* @param destKey
* @param options
*/
function moveOp(srcBucket: string, srcKey: string, destBucket: string, destKey: string, options?: { force?: boolean }): string;
/**
*
* @param srcBucket
* @param srcKey
* @param destBucket
* @param destKey
* @param options
*/
function copyOp(srcBucket: string, srcKey: string, destBucket: string, destKey: string, options?: { force?: boolean }): string;
interface PutPolicyOptions {
scope?: string;
isPrefixalScope?: number;
expires?: number;
insertOnly?: number;
saveKey?: string;
endUser?: string;
returnUrl?: string;
returnBody?: string;
callbackUrl?: string;
callbackHost?: string;
callbackBody?: string;
callbackBodyType?: string;
callbackFetchKey?: number;
persistentOps?: string;
persistentNotifyUrl?: string;
persistentPipeline?: string;
fsizeLimit?: number;
fsizeMin?: number;
mimeLimit?: string;
detectMime?: number;
deleteAfterDays?: number;
fileType?: number;
}
class PutPolicy {
constructor(options?: PutPolicyOptions);
getFlags(): any;
uploadToken(mac?: auth.digest.Mac): string;
}
}
export declare namespace sms {
namespace message {
/**
* (POST Message)
* @link https://developer.qiniu.com/sms/5897/sms-api-send-message#1
* @param reqBody
* @param mac
* @param callback
*/
function sendMessage(
reqBody: {
"template_id": string,
"mobiles": string[],
"parameters"?: Record<string, string>
},
mac: auth.digest.Mac,
callback: Callback<{ job_id: string }>
): void;
/**
* (POST Single Message)
* @link https://developer.qiniu.com/sms/5897/sms-api-send-message#2
* @param reqBody
* @param mac
* @param callback
*/
function sendSingleMessage(
reqBody: {
"template_id": string,
"mobile": string,
"parameters"?: Record<string, string>
},
mac: auth.digest.Mac,
callback: Callback<{ message_id: string }>
): void;
/**
* / (POST Oversea Message)
* @link https://developer.qiniu.com/sms/5897/sms-api-send-message#3
* @param reqBody
* @param mac
* @param callback
*/
function sendOverseaMessage(
reqBody: {
"template_id": string,
"mobile": string,
"parameters"?: Record<string, string>
},
mac: auth.digest.Mac,
callback: Callback<{ message_id: string }>
): void;
/**
* ( ID) (POST Fulltext Message)
* @link https://developer.qiniu.com/sms/5897/sms-api-send-message#4
* @param reqBody
* @param mac
* @param callback
*/
function sendFulltextMessage(
reqBody: {
"mobiles": string[],
"content": string,
"template_type": string
},
mac: auth.digest.Mac,
callback: Callback<{ job_id: string }>
): void;
}
}