Skip to content

Feat/2.11.0 #118

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Nov 17, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 104 additions & 58 deletions demo/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -1518,6 +1518,47 @@ function downloadFile() {
// cos.emit('inner-kill-task', {TaskId: '123'});
}

// 追加上传
function appendObject() {
cos.appendObject({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Region: config.Region,
Key: 'append1.txt', /* 必须 */
Body: '12345',
Position: 0,
},
function(err, data) {
console.log(err || data);
})
}

// 继续追加上传
function appendObject_continue() {
cos.headObject({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Region: config.Region,
Key: 'append1.txt', /* 必须 */
}, function(err, data) {
if (err) return console.log(err);
// 首先取到要追加的文件当前长度,即需要上送的Position
var position = data.headers['content-length'];
cos.appendObject({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Region: config.Region,
Key: 'append1.txt', /* 必须 */
Body: '66666',
Position: position,
},
function(err, data) {
// 也可以取到下一次上传的position继续追加上传
var nextPosition = data.headers['x-cos-next-append-position'];
console.log(err || data);
})
});
}



function request() {
// 对云上数据进行图片处理
var filename = 'example_photo.png';
Expand Down Expand Up @@ -1646,36 +1687,71 @@ function CIExample4(){
* 查询已经开通数据万象功能的存储桶
*/
function DescribeCIBuckets() {
let url = 'https://' +config.Bucket + '.pic.' + config.Region + '.myqcloud.com';
var host = 'ci.' + config.Region + '.myqcloud.com';
var url = 'https://' + host + '/mediabucket';
cos.request({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Bucket: config.Bucket,
Region: config.Region,
Method: 'GET',
Url: url
}, function (err, data) {
Key: 'mediabucket', /** 固定值,必须 */
Url: url,
Query: {
pageNumber: '1', /** 第几页,非必须 */
pageSize: '10', /** 每页个数,非必须 */
// regions: 'ap-chengdu', /** 地域信息,例如'ap-beijing',支持多个值用逗号分隔如'ap-shanghai,ap-beijing',非必须 */
// bucketNames: 'test-1250000000', /** 存储桶名称,精确搜索,例如'test-1250000000',支持多个值用逗号分隔如'test1-1250000000,test2-1250000000',非必须 */
// bucketName: 'test', /** 存储桶名称前缀,前缀搜索,例如'test',支持多个值用逗号分隔如'test1,test2',非必须 */
}
},
function(err, data){
// var CIStatus = data.CIStatus;
console.log(err || data);
});
}


/**
* 查询已经开通文档预览功能的存储桶
* 获取媒体文件信息
*/
function GetMediaInfo() {
cos.request({
Bucket: config.Bucket,
Region: config.Region,
Method: 'GET',
Key: 'test.mp4',
Query: {
'ci-process': 'videoinfo' /** 固定值,必须 */
}
},
function (err, data) {
console.log(err || data);
});
}

/**
* 获取媒体文件某个时间的截图
*/
function DescribeDocProcessBuckets() {
let url = 'https://' + 'ci.' + config.Region + '.myqcloud.com/docbucket';
function GetSnapshot() {
cos.request({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Bucket: config.Bucket,
Region: config.Region,
Method: 'GET',
Key: 'docbucket',
Url: url,
Key: 'test.mp4',
Query: {
pageNumber: '1',
pageSize: '10'
}
}, function (err, data) {
console.log(err || data);
});
'ci-process': 'snapshot', /** 固定值,必须 */
time: 1, /** 截图的时间点,单位为秒,必须 */
// width: 0, /** 截图的宽,非必须 */
// height: 0, /** 截图的高,非必须 */
// format: 'jpg', /** 截图的格式,支持 jpg 和 png,默认 jpg,非必须 */
// rotate: 'auto', /** 图片旋转方式,默认为'auto',非必须 */
// mode: 'exactframe', /** 截帧方式,默认为'exactframe',非必须 */
},
RawBody: true,
},
function (err, data) {
// var Body = data.Body;
console.log(err || data);
});
}


Expand Down Expand Up @@ -2142,44 +2218,6 @@ function DescribeMediaJobs() {
}


/**
* 获取媒体文件某个时间的截图
*/
function GetSnapshot() {
cos.request({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Region: config.Region,
Method: 'GET',
Key: 'test.mp4',
Query: {
'ci-process': 'snapshot',
'time': '1',
'format': 'png'
}
}, function (err, data) {
console.log(err || data);
});
}


/**
* 获取媒体文件信息
*/
function GetMediaInfo() {
cos.request({
Bucket: config.Bucket, // Bucket 格式:test-1250000000
Region: config.Region,
Method: 'GET',
Key: 'test.mp4',
Query: {
'ci-process': 'videoinfo'
}
}, function (err, data) {
console.log(err || data);
});
}


/**
* 创建工作流
*/
Expand Down Expand Up @@ -2587,7 +2625,7 @@ function GetPrivateM3U8() {
});
}


// 存储桶操作
// getService();
// getAuth();
// getV4Auth();
Expand Down Expand Up @@ -2640,6 +2678,9 @@ function GetPrivateM3U8() {
// getBucketEncryption();
// deleteBucketEncryption();
// deleteBucket();


// 对象操作
// putObjectCopy();
// getObjectStream();
// getObject();
Expand All @@ -2664,6 +2705,8 @@ function GetPrivateM3U8() {
// putObjectTagging();
// getObjectTagging();
// deleteObjectTagging();
// appendObject();
// appendObject_continue();

// 其他示例
// moveObject();
Expand All @@ -2675,7 +2718,11 @@ function GetPrivateM3U8() {
// request();

// 数据处理
//DescribeCIBuckets();
// DescribeCIBuckets();
// GetMediaInfo();
// GetSnapshot();


//DescribeDocProcessBuckets();
//GetDocProcess()
//DescribeDocProcessQueues()
Expand All @@ -2694,8 +2741,7 @@ function GetPrivateM3U8() {
//CancelMediaJob();
//DescribeMediaJob();
//DescribeMediaJobs();
//GetSnapshot();
//GetMediaInfo();

//CreateWorkflow();
//DeleteWorkflow();
//DescribeWorkflow();
Expand Down
71 changes: 67 additions & 4 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1249,6 +1249,12 @@ declare namespace COS {
VersionId?: VersionId,
}

/** appendObject 接口参数 */
interface AppendObjectParams extends PutObjectParams {
/** 追加操作的起始点 */
Position: number;
}

// deleteObject
/** deleteObject 接口参数 */
interface DeleteObjectParams extends ObjectParams {}
Expand Down Expand Up @@ -1773,7 +1779,7 @@ Bulk:批量模式,恢复时间为24 - 48小时。 */
data: UploadFileItemResult;
options: UploadFileItemParams;
}
type onFileFinish = (params: FileFinishInfo) => void;
type onFileFinish = (err: Error, data: UploadFileItemResult, options: UploadFileItemParams) => void;

type UploadFileParams = (PutObjectParams | SliceUploadFileParams) & {
/** 要上传的本地文件路径 */
Expand Down Expand Up @@ -1852,9 +1858,13 @@ Bulk:批量模式,恢复时间为24 - 48小时。 */
/** 请求里的 Url Query 参数 */
Query?: Query,
/** 请求里的 Body 参数 */
Body?: Body,
Body?: Body | string,
/** 请求的 API 动作接口(可理解为不带 = 的 Query 参数),如 acl、tagging、image_process 等 */
Action: Action
Action?: Action,
/** 请求url */
Url?: string,
/** 返回值body是否不需要解析 */
RawBody?: boolean,
}
/** Request 接口返回值 */
interface RequestResult extends GeneralResult {
Expand All @@ -1881,6 +1891,37 @@ Bulk:批量模式,恢复时间为24 - 48小时。 */
Url: string
}


/******** 媒体处理相关 ********/
/** 查询已经开通数据万象功能的存储桶 */
interface DescribeMediaBucketsParams extends BucketParams {
PageNumber?: string;
PageSize?: string;
Regions?: string;
BucketNames?: string;
BucketName?: string;
}

interface DescribeMediaBucketsResult extends GeneralResult {
CIStatus: boolean;
}

/** 获取媒体文件信息 */
interface GetMediaInfoResult extends GeneralResult {
Response: any;
}

/** 获取媒体文件某个时间的截图 */
interface GetSnapshotParams extends ObjectParams {
Time?: number;
Width?: number;
Height?: number;
format?: string;
rotate?: string;
mode?: string;
}


// getV4Auth
interface GetV4AuthParams {
/** 计算签名用的密钥 SecretId,如果不传会用实例本身的凭证,可选 */
Expand Down Expand Up @@ -2258,19 +2299,41 @@ declare class COS {
/** 判断上传队列是否有未完成的任务 */
isUploadRunning(): boolean;

/** 分片复制文件 */
/** cos.request */
request(params: COS.RequestParams, callback: (err: COS.CosError, data: COS.RequestResult) => void): void;
request(params: COS.RequestParams): Promise<COS.RequestResult>;

/** 获取文件下载链接 @see https://cloud.tencent.com/document/product/436/35651 */
getObjectUrl(params: COS.GetObjectUrlParams, callback: (err: COS.CosError, data: COS.GetObjectUrlResult) => void): string;

/** 追加上传 @see https://cloud.tencent.com/document/product/436/7741 */
appendObject(params: COS.AppendObjectParams, callback: (err: COS.CosError, data: COS.GeneralResult) => void): void;
appendObject(params: COS.AppendObjectParams): Promise<COS.GeneralResult>;

/*********** 媒体处理相关 start *******/
/** 查询已经开通数据万象功能的存储桶 */
describeMediaBuckets(params: COS.DescribeMediaBucketsParams, callback: (err: COS.CosError, data: COS.DescribeMediaBucketsResult) => void): void;
describeMediaBuckets(params: COS.DescribeMediaBucketsParams): Promise<COS.DescribeMediaBucketsResult>;

/** 获取媒体文件信息 */
getMediaInfo(params: COS.ObjectParams, callback: (err: COS.CosError, data: COS.GetMediaInfoResult) => void): void;
getMediaInfo(params: COS.ObjectParams): Promise<COS.GetMediaInfoResult>;

/** 获取媒体文件某个时间的截图 */
getSnapshot(params: COS.GetSnapshotParams, callback: (err: COS.CosError, data: COS.RequestResult) => void): void;
getSnapshot(params: COS.GetSnapshotParams): Promise<COS.RequestResult>;
/*********** 媒体处理相关 end *******/

/** 获取 COS JSON API (v4) 签名 @see https://cloud.tencent.com/document/product/436/6054 */
getV4Auth(params: COS.GetV4AuthParams): COS.Authorization;

/** 获取 COS XMl API (v5) 签名 @see https://cloud.tencent.com/document/product/436/7778 */
getAuth(params: COS.GetAuthParams): COS.Authorization;

on(action: string, callback: (params?: any) => void): void;
off(action: string, callback: (params?: any) => void): void;
emit(action: string, data?: any): void;

}

export = COS;
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cos-nodejs-sdk-v5",
"version": "2.10.10",
"version": "2.11.0",
"description": "cos nodejs sdk v5",
"main": "index.js",
"types": "index.d.ts",
Expand Down
Loading