DefinitelyTyped/types/ali-oss/index.d.ts

946 lines
31 KiB
TypeScript

// Type definitions for ali-oss 6.0
// Project: https://github.com/aliyun/oss-nodejs-sdk
// Definitions by: Ptrdu <https://github.com/ptrdu>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
export = OSS;
// basic OSS
declare namespace OSS {
interface Options {
accessKeyId: string; // access secret you create
accessKeySecret: string; // access secret you create
stsToken?: string; // used by temporary authorization
bucket?: string; // the default bucket you want to access If you don't have any bucket, please use putBucket() create one first.
endpoint?: string; // oss region domain. It takes priority over region.
region?: string; // the bucket data region location, please see Data Regions, default is oss-cn-hangzhou.
internal?: boolean; // access OSS with aliyun internal network or not, default is false. If your servers are running on aliyun too, you can set true to save lot of money.
secure?: boolean; // instruct OSS client to use HTTPS (secure: true) or HTTP (secure: false) protocol.
timeout?: string | number; // instance level timeout for all operations, default is 60s
cname?: boolean; // use custom domain name
}
interface Bucket {
name: string;
region: string;
creationDate: string;
StorageClass: StorageType;
}
type StorageType = 'Standard' | 'IA' | 'Archive';
type ACLType = 'public-read-write' | 'public-read' | 'private';
type HTTPMethods = 'GET' | 'POST' | 'DELETE' | 'PUT';
interface RequestOptions {
// the operation timeout
timeout?: number;
}
type RuleStatusType = 'Enabled' | 'Disabled';
interface LifecycleRule {
id?: string; // rule id, if not set, OSS will auto create it with random string.
prefix: string; // store prefix
status: RuleStatusType; // rule status, allow values: Enabled or Disabled
days?: number | string; // expire after the days
date: string; // expire date, e.g.: 2022-10-11T00:00:00.000Z date and days only set one.
}
interface CORSRule {
allowedOrigin: string | string[]; // configure for Access-Control-Allow-Origin header
allowedMethod: string | string[]; // configure for Access-Control-Allow-Methods header
allowedHeader?: string | string[]; // configure for Access-Control-Allow-Headers header
exposeHeader?: string | string[]; // configure for Access-Control-Expose-Headers header
maxAgeSeconds?: string | string[]; // configure for Access-Control-Max-Age header
}
interface OwnerType {
id: string;
displayName: string;
}
interface ObjectMeta {
name: string; // object name on oss
lastModified: string; // object last modified GMT date, e.g.: 2015-02-19T08:39:44.000Z
etag: string; // object etag contains ", e.g.: "5B3C1A2E053D763E1B002CC607C5A0FE"
type: string; // object type, e.g.: Normal
size: number; // object size, e.g.: 344606
storageClass: StorageType;
owner: OwnerType;
}
interface NormalSuccessResponse {
// response status
status: number;
// response headers
headers: object; // todo the object in detail
// response size
size: number;
// request total use time (ms)
rt: number;
}
interface UserMeta {
uid: number;
pid: number;
}
interface ObjectCallback {
url: string; // After a file is uploaded successfully, the OSS sends a callback request to this URL.
host?: string; // The host header value for initiating callback requests.
body: string; // The value of the request body when a callback is initiated, for example, key=$(key)&etag=$(etag)&my_var=$(x:my_var).
contentType?: string; // The Content-Type of the callback requests initiatiated, It supports application/x-www-form-urlencoded and application/json, and the former is the default value.
customValue?: object;
headers?: object; // extra headers, detail see RFC 2616
}
interface ModifyData {
lastModified: string; // object last modified GMT string
etag: string; // object etag contains ", e.g.: "5B3C1A2E053D763E1B002CC607C5A0FE"
}
interface Checkpoint {
file: any; // The file object selected by the user, if the browser is restarted, it needs the user to manually trigger the settings
name: string; // object key
fileSize: number;
partSize: number;
uploadId: string;
doneParts: Array<{ number: number; etag: string }>;
}
interface ObjectPart {
PartNumber: number;
LastModified: any; // {Date} Time when a part is uploaded.
ETag: string;
size: number;
}
interface Upload {
name: string;
uploadId: string;
initiated: any;
}
interface Channel {
Name: string;
Description: string;
Status: string;
LastModified: string;
PublishUrls: string[];
PlayUrls: string[];
}
interface ChannelHistory {
StartTime: string; //
EndTime: string;
RemoteAddr: string; // the remote addr
}
// parameters type
interface ListBucketsQueryType {
prefix?: string; // search buckets using prefix key
marker?: string; // search start from marker, including marker key
'max-keys'?: string | number; // max buckets, default is 100, limit to 1000
}
interface PutBucketOptions {
timeout: number;
storageClass: StorageType;
}
interface PutBucketWebsiteConfig {
index: string; // default page, e.g.: index.html
error?: string; // error page, e.g.: 'error.html'
}
interface ListObjectsQuery {
prefix?: string; // search object using prefix key
marker?: string; // search start from marker, including marker key
delimiter?: string; // delimiter search scope e.g. / only search current dir, not including subdir
'max-keys': string | number; // max objects, default is 100, limit to 1000
}
interface ListObjectResult {
objects: ObjectMeta[];
prefixes: string[];
isTruncated: boolean;
nextMarker: string;
res: NormalSuccessResponse;
}
interface PutObjectOptions {
timeout?: number; // the operation timeout
mime?: string; // custom mime, will send with Content-Type entity header
meta?: UserMeta; // user meta, will send with x-oss-meta- prefix string e.g.: { uid: 123, pid: 110 }
callback?: ObjectCallback;
headers?: object;
}
interface PutObjectResult {
name: string;
data: object;
res: NormalSuccessResponse;
}
interface PutStreamOptions {
contentLength?: number; // the stream length, chunked encoding will be used if absent
timeout: number; // the operation timeout
mime: string; // custom mime, will send with Content-Type entity header
meta: UserMeta;
callback: ObjectCallback;
headers?: object;
}
interface AppendObjectOptions {
position?: string; // specify the position which is the content length of the latest object
timeout?: number; // the operation timeout
mime?: string; // custom mime, will send with Content-Type entity header
meta?: UserMeta;
headers?: object;
}
interface AppendObjectResult {
name: string;
url: string; // the url of oss
res: NormalSuccessResponse;
nextAppendPosition: string; // the next position
}
interface HeadObjectOptions {
timeout?: number;
headers?: object;
}
interface HeadObjectResult {
status: number; // response status, maybe 200 or 304
meta: UserMeta;
res: NormalSuccessResponse;
}
interface GetObjectOptions {
timeout?: number;
process?: string; // image process params, will send with x-oss-process e.g.: {process: 'image/resize,w_200'}
headers?: object;
}
interface GetObjectResult {
content?: any; // file content buffer if file parameter is null or ignore
res: NormalSuccessResponse;
}
interface GetStreamOptions {
timeout?: number;
process?: string; // image process params, will send with x-oss-process e.g.: {process: 'image/resize,w_200'}
headers?: object;
}
interface GetStreamResult {
stream?: any; // readable stream instance if response status is not 200, stream will be null.
res: NormalSuccessResponse;
}
interface CopyObjectOptions {
timeout?: number;
meta?: UserMeta;
headers?: object;
}
interface CopyAndPutMetaResult {
data: ModifyData;
res: NormalSuccessResponse;
}
interface DeleteMultiOptions {
quite?: boolean; // quite mode or verbose mode, default is false
timeout?: number;
}
interface DeleteMultiResult {
deleted?: string[]; // deleted object names list
res: NormalSuccessResponse;
}
interface ResponseHeaderType {
'content-type'?: string;
'content-disposition'?: string;
'cache-control'?: string;
}
interface SignatureUrlOptions {
expires?: number; // after expires seconds, the url will become invalid, default is 1800
method?: HTTPMethods; // the HTTP method, default is 'GET'
'Content-Type'?: string; // set the request content type
process?: string;
response?: ResponseHeaderType; // set the response headers for download
callback?: ObjectCallback;
}
interface GetACLResult {
acl: ACLType;
res: NormalSuccessResponse;
}
interface InitMultipartUploadOptions {
timeout?: number;
mime?: string; // Mime file type
meta?: UserMeta;
headers?: object;
}
interface InitMultipartUploadResult {
res: { status: number; headers: object; size: number; rt: number };
bucket: string; // bucket name
name: string; // object name store on OSS
uploadId: string; // upload id, use for uploadPart, completeMultipart
}
interface UploadPartResult {
name: string;
etag: string;
res: NormalSuccessResponse;
}
interface CompleteMultipartUploadOptions {
timeout?: number;
callback?: ObjectCallback;
headers?: object;
}
interface CompleteMultipartUploadResult {
bucket: string;
name: string;
etag: string;
data: object;
res: NormalSuccessResponse;
}
interface MultipartUploadOptions {
parallel?: number; // the number of parts to be uploaded in parallel
partSize?: number; // the suggested size for each part
progress?: (...args: any[]) => any; // the progress callback called after each successful upload of one part
checkpoint?: Checkpoint; // the checkpoint to resume upload, if this is provided, it will continue the upload from where interrupted, otherwise a new multipart upload will be created.
meta?: UserMeta;
mime?: string;
callback?: ObjectCallback;
headers?: object;
timeout?: number;
copyheaders?: object; // {Object} only uploadPartCopy api used, detail
}
interface MultipartUploadResult {
bucket: string;
name: string;
etag: string;
data: object;
res: NormalSuccessResponse;
}
interface MultipartUploadCopyResult {
bucket: string;
name: string;
etag: string;
res: NormalSuccessResponse;
}
interface MultipartUploadCopySourceData {
sourceKey: string; // the source object name
sourceBucketName: string; // sourceData. the source bucket name
startOffset: number; // data copy start byte offset, e.g: 0
endOffset: number; // data copy end byte offset, e.g: 102400
}
interface ListPartsQuery {
'max-parts': number; // The maximum part number in the response of the OSS. default value: 1000.
'part-number-marker': number; // Starting position of a specific list. A part is listed only when the part number is greater than the value of this parameter.
'encoding-type': string; // Specify the encoding of the returned content and the encoding type. Optional value: url
}
interface ListPartsResult {
uploadId: string;
bucket: string;
name: string;
PartNumberMarker: number;
nextPartNumberMarker: number;
maxParts: number;
isTruncated: boolean;
parts: ObjectPart[];
res: NormalSuccessResponse;
}
interface ListUploadsQuery {
prefix?: string;
'max-uploads'?: number;
'key-marker'?: string;
'upload-id-marker'?: string;
}
interface ListUploadsResult {
res: NormalSuccessResponse;
bucket: string;
nextKeyMarker: any;
nextUploadIdMarker: any;
isTruncated: boolean;
uploads: Upload[];
}
interface PutChannelConf {
Description?: string;
Status?: string;
Target?: {
Type: string;
FragDuration: number;
FragCount: number;
PlaylistName: string;
};
}
interface PutChannelResult {
publishUrls: string[];
playUrls: string[];
res: NormalSuccessResponse;
}
interface GetChannelResult {
Status: string;
ConnectedTime?: string;
RemoteAddr?: string;
Video?: object;
Audio?: object;
res: NormalSuccessResponse;
}
interface ListChannelsQuery {
prefix: string; // the channel id prefix (returns channels with this prefix)
marker: string; // the channel id marker (returns channels after this id)
'max-keys ': number; // max number of channels to return
}
interface ListChannelsResult {
channels: Channel[];
nextMarker: string | null;
isTruncated: boolean;
res: NormalSuccessResponse;
}
interface ChannelHistoryResult {
records: ChannelHistory;
res: NormalSuccessResponse;
}
interface GetRtmpUrlOptions {
expires?: number; // the expire time in seconds of the url
params?: object; // the additional parameters for url, e.g.: {playlistName: 'play.m3u8'}
timeout?: number; // the operation timeout
}
}
/// cluster
declare namespace OSS {
interface ClusterType {
host: string;
accessKeyId: string;
accessKeySecret: string;
}
interface ClusterOptions {
clusters: ClusterType[];
schedule?: string;
}
class Cluster {
constructor(options: ClusterOptions);
list(query: ListObjectsQuery | null, options: RequestOptions): Promise<ListObjectResult>;
put(name: string, file: any, options?: PutObjectOptions): Promise<PutObjectResult>;
putStream(
name: string,
stream: any,
options?: PutStreamOptions
): Promise<{ name: string; res: NormalSuccessResponse }>;
head(name: string, options?: HeadObjectOptions): Promise<HeadObjectResult>;
get(name: string, file?: any, options?: GetObjectOptions): Promise<GetObjectResult>;
getStream(name?: string, options?: GetStreamOptions): Promise<GetStreamResult>;
delete(name: string, options?: RequestOptions): Promise<NormalSuccessResponse>;
copy(name: string, sourceName: string, options?: CopyObjectOptions): Promise<CopyAndPutMetaResult>;
putMeta(name: string, meta: UserMeta, options: RequestOptions): Promise<CopyAndPutMetaResult>;
deleteMulti(names: string[], options?: DeleteMultiOptions): Promise<DeleteMultiResult>;
signatureUrl(name: string, options?: SignatureUrlOptions): string;
putACL(name: string, acl: ACLType, options?: RequestOptions): Promise<NormalSuccessResponse>;
restore(name: string, options?: RequestOptions): Promise<NormalSuccessResponse>;
}
}
// image
declare namespace OSS {
interface ImageClientOptions {
imageHost: string; // your image service domain that binding to a OSS bucket
accessKeyId: string; // access key you create on aliyun console website
accessKeySecret: string; // access secret you create
bucket: string; // the default bucket you want to access If you don't have any bucket, please use putBucket() create one first.
region?: string; // the bucket data region location, please see Data Regions, default is oss-cn-hangzhou
internal?: boolean; // access OSS with aliyun internal network or not, default is false If your servers are running on aliyun too, you can set true to save lot of money.
timeout?: string | number; // instance level timeout for all operations, default is 60s
}
interface ImageGetOptions {
timeout?: number;
headers?: object;
}
interface StyleData {
Name: string; // style name
Content: string; // style content
CreateTime: string; // style create time
LastModifyTime: string; // style last modify time
}
class ImageClient {
constructor(options: ImageClientOptions);
/**
* Get an image from the image channel.
*/
get(name: string, file?: any, options?: ImageGetOptions): Promise<{ content: any; res: NormalSuccessResponse }>;
/**
* Get an image read stream.
*/
getStream(name: string, options?: ImageGetOptions): Promise<{ stream: any; res: NormalSuccessResponse }>;
/**
* Get a image exif info by image object name from the image channel.
*/
getExif(name: string, options?: RequestOptions): Promise<{ data: object; res: NormalSuccessResponse }>;
/**
* Get a image info and exif info by image object name from the image channel.
*/
getInfo(name: string, options?: RequestOptions): Promise<{ data: object; res: NormalSuccessResponse }>;
/**
* todo
*/
putStyle(
name: string,
style: string,
options?: RequestOptions
): Promise<{ data: object; res: NormalSuccessResponse }>;
/**
* Get a style by name from the image channel.
*/
getStyle(name: string, options?: RequestOptions): Promise<{ data: StyleData; res: NormalSuccessResponse }>;
/**
* Get all styles from the image channel.
*/
listStyle(options?: RequestOptions): Promise<StyleData[]>;
/**
* todo
*/
deleteStyle(styleName: string, options?: RequestOptions): Promise<NormalSuccessResponse>;
/**
* Create a signature url for directly download.
*/
signatureUrl(name: string, options?: { expires?: string; timeout?: string }): string;
}
}
declare class OSS {
constructor(options: OSS.Options);
/******************************************* the bucket operations *************************************************/
// base operators
/**
* List buckets in this account.
*/
listBuckets(query: OSS.ListBucketsQueryType | null, options?: OSS.RequestOptions): Promise<OSS.Bucket[]>;
/**
* Create a new bucket.
*/
putBucket(
name: string,
options?: OSS.PutBucketOptions
): Promise<{ bucket: string; res: OSS.NormalSuccessResponse }>;
/**
* Use the bucket.
*/
useBucket(name: string): void;
/**
* Delete an empty bucket.
*/
deleteBucket(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Get bucket information,include CreationDate、ExtranetEndpoint、IntranetEndpoint、Location、Name、StorageClass、 Owner、AccessControlList
*/
getBucketInfo(name: string): Promise<any>;
/**
* Get bucket location
*/
getBucketLocation(name: string): Promise<any>;
// ACL operations
/**
* Update the bucket ACL.
*/
putBucketACL(name: string, acl: OSS.ACLType, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Get the bucket ACL.
* acl - acl settings string
*/
getBucketACL(name: string, options?: OSS.RequestOptions): Promise<{ acl: string; res: OSS.NormalSuccessResponse }>;
// logging operations
/**
* Update the bucket logging settings. Log file will create every one hour and name format: <prefix><bucket>-YYYY-mm-DD-HH-MM-SS-UniqueString.
*/
putBucketLogging(name: string, prefix?: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Get the bucket logging settings.
*/
getBucketLogging(
name: string,
options?: OSS.RequestOptions
): Promise<{ enable: boolean; prefix: string | null; res: OSS.NormalSuccessResponse }>;
/**
* Delete the bucket logging settings.
*/
deleteBucketLogging(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
// Website operations
/**
* Set the bucket as a static website.
*/
putBucketWebsite(name: string, config: OSS.PutBucketWebsiteConfig): Promise<OSS.NormalSuccessResponse>;
/**
* Get the bucket website config.
*/
getBucketWebsite(
name: string,
options?: OSS.RequestOptions
): Promise<{ index: string; error: string; res: OSS.NormalSuccessResponse }>;
/**
* Delete the bucket website config.
*/
deleteBucketWebsite(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
// referer operations
/**
* Set the bucket request Referer white list.
*/
putBucketReferer(
name: string,
allowEmpty: boolean,
referers: string[],
options?: OSS.RequestOptions
): Promise<OSS.NormalSuccessResponse>;
/**
* Get the bucket request Referer white list.
*/
getBucketReferer(
name: string,
options?: OSS.RequestOptions
): Promise<{ allowEmpty: boolean; referers: string[]; res: OSS.NormalSuccessResponse }>;
/**
* Delete the bucket request Referer white list.
*/
deleteBucketReferer(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
// lifecycle operations
/**
* Set the bucket object lifecycle.
*/
putBucketLifecycle(
name: string,
rules: OSS.LifecycleRule[],
options?: OSS.RequestOptions
): Promise<OSS.NormalSuccessResponse>;
/**
* Get the bucket object lifecycle.
*/
getBucketLifecycle(
name: string,
options?: OSS.RequestOptions
): Promise<{ rules: OSS.LifecycleRule[]; res: OSS.NormalSuccessResponse }>;
/**
* Delete the bucket object lifecycle.
*/
deleteBucketLifecycle(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
// CORS operations
/**
* Set CORS rules of the bucket object
*/
putBucketCORS(
name: string,
rules: OSS.CORSRule[],
options?: OSS.RequestOptions
): Promise<OSS.NormalSuccessResponse>;
/**
* Get CORS rules of the bucket object.
*/
getBucketCORS(name: string): Promise<{ rules: OSS.CORSRule[]; res: OSS.NormalSuccessResponse }>;
/**
* Delete CORS rules of the bucket object.
*/
deleteBucketCORS(name: string): Promise<OSS.NormalSuccessResponse>;
/********************************************************** Object operations ********************************************/
/**
* List objects in the bucket.
*/
list(query: OSS.ListObjectsQuery | null, options: OSS.RequestOptions): Promise<OSS.ListObjectResult>;
/**
* Add an object to the bucket.
*/
put(name: string, file: any, options?: OSS.PutObjectOptions): Promise<OSS.PutObjectResult>;
/**
* Add a stream object to the bucket.
*/
putStream(
name: string,
stream: any,
options?: OSS.PutStreamOptions
): Promise<{ name: string; res: OSS.NormalSuccessResponse }>;
/**
* Append an object to the bucket, it's almost same as put, but it can add content to existing object rather than override it.
*/
append(name: string, file: any, options?: OSS.AppendObjectOptions): Promise<OSS.AppendObjectResult>;
/**
* Get the Object url. If provide baseUrl, will use baseUrl instead the default endpoint.
*/
getObjectUrl(name: string, baseUrl?: string): string;
/**
* Get the Object url. If provide baseUrl, will use baseUrl instead the default bucket and endpoint. Suggest use generateObjectUrl instead of getObjectUrl.
*/
generateObjectUrl(name: string, baseUrl?: string): string;
/**
* Head an object and get the meta info.
*/
head(name: string, options?: OSS.HeadObjectOptions): Promise<OSS.HeadObjectResult>;
/**
* Get an object from the bucket.
*/
get(name: string, file?: any, options?: OSS.GetObjectOptions): Promise<OSS.GetObjectResult>;
/**
* Get an object read stream.
*/
getStream(name?: string, options?: OSS.GetStreamOptions): Promise<OSS.GetStreamResult>;
/**
* Delete an object from the bucket.
*/
delete(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Copy an object from sourceName to name.
*/
copy(name: string, sourceName: string, options?: OSS.CopyObjectOptions): Promise<OSS.CopyAndPutMetaResult>;
/**
* Set an exists object meta.
*/
putMeta(name: string, meta: OSS.UserMeta, options: OSS.RequestOptions): Promise<OSS.CopyAndPutMetaResult>;
/**
* Delete multi objects in one request.
*/
deleteMulti(names: string[], options?: OSS.DeleteMultiOptions): Promise<OSS.DeleteMultiResult>;
/**
* Create a signature url for download or upload object. When you put object with signatureUrl ,you need to pass Content-Type.Please look at the example.
*/
signatureUrl(name: string, options?: OSS.SignatureUrlOptions): string;
/**
* Set object's ACL.
*/
putACL(name: string, acl: OSS.ACLType, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Get object's ACL.
*/
getACL(name: string, options?: OSS.RequestOptions): Promise<OSS.GetACLResult>;
/**
* Restore Object.
*/
restore(name: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* multi upload
*/
initMultipartUpload(name: string, options?: OSS.InitMultipartUploadOptions): Promise<OSS.InitMultipartUploadResult>;
/**
* After initiating a Multipart Upload event, you can upload data in parts based on the specified object name and Upload ID.
*/
uploadPart(
name: string,
uploadId: string,
partNo: number,
file: any,
start: number,
end: number,
options?: OSS.RequestOptions
): Promise<OSS.UploadPartResult>;
/**
* Using Upload Part Copy, you can copy data from an existing object and upload a part of the data.
* When copying a file larger than 1 GB, you must use the Upload Part Copy method. If you want to copy a file smaller than 1 GB, see Copy Object.
*/
uploadPartCopy(
name: string,
uploadId: string,
partNo: number,
range: string,
sourceData: { sourceKey: string; sourceBucketName: string },
options: { timeout?: number; headers?: object }
): Promise<OSS.UploadPartResult>;
/**
* After uploading all data parts, you must call the Complete Multipart Upload API to complete Multipart Upload for the entire file.
*/
completeMultipartUpload(
name: string,
uploadId: string,
parts: Array<{ number: number; etag: string }>,
options?: OSS.CompleteMultipartUploadOptions
): Promise<OSS.CompleteMultipartUploadResult>;
/**
* Upload file with OSS multipart.
*/
multipartUpload(name: string, file: any, options: OSS.MultipartUploadOptions): Promise<OSS.MultipartUploadResult>;
/**
* Copy file with OSS multipart.
* this function contains head, initMultipartUpload, uploadPartCopy, completeMultipartUpload.
* When copying a file larger than 1 GB, you should use the Upload Part Copy method. If you want to copy a file smaller than 1 GB, see Copy Object.
*/
multipartUploadCopy(
name: string,
sourceData: OSS.MultipartUploadCopySourceData,
options?: OSS.MultipartUploadOptions
): Promise<OSS.MultipartUploadCopyResult>;
/**
* The ListParts command can be used to list all successfully uploaded parts mapped to a specific upload ID, i.e.: those not completed and not aborted.
*/
listParts(
name: string,
uploadId: string,
query?: OSS.ListPartsQuery,
options?: OSS.RequestOptions
): Promise<OSS.ListPartsResult>;
/**
* List on-going multipart uploads, i.e.: those not completed and not aborted.
*/
listUploads(query: OSS.ListUploadsQuery, options?: OSS.RequestOptions): Promise<OSS.ListUploadsResult>;
/**
* Abort a multipart upload for object.
*/
abortMultipartUpload(
name: string,
uploadId: string,
options?: OSS.RequestOptions
): Promise<OSS.NormalSuccessResponse>;
/************************************************ RTMP Operations *************************************************************/
/**
* Create a live channel.
*/
putChannel(id: string, conf: OSS.PutChannelConf, options?: OSS.RequestOptions): Promise<OSS.PutChannelResult>;
/**
* Get live channel info.
*/
getChannel(
id: string,
options?: OSS.RequestOptions
): Promise<{ data: OSS.PutChannelConf; res: OSS.NormalSuccessResponse }>;
/**
* Delete a live channel.
*/
deleteChannel(id: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Change the live channel status.
*/
putChannelStatus(id: string, status?: string, options?: OSS.RequestOptions): Promise<OSS.NormalSuccessResponse>;
/**
* Get the live channel status.
*/
getChannelStatus(id: string, options?: OSS.RequestOptions): Promise<OSS.GetChannelResult>;
/**
* List channels.
*/
listChannels(query: OSS.ListChannelsQuery, options?: OSS.RequestOptions): Promise<OSS.ListChannelsResult>;
/**
* Get the live channel history.
*/
getChannelHistory(id: string, options?: OSS.RequestOptions): Promise<OSS.ChannelHistoryResult>;
/**
* Create a VOD playlist for the channel.
*/
createVod(
id: string,
name: string,
time: { startTime: number; endTime: number },
options?: OSS.RequestOptions
): Promise<OSS.NormalSuccessResponse>;
/**
* Get signatured rtmp url for publishing.
*/
getRtmpUrl(channelId?: string, options?: OSS.GetRtmpUrlOptions): string;
}