New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@cloudbase/node-sdk

Package Overview
Dependencies
Maintainers
9
Versions
85
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cloudbase/node-sdk - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

docs/database/aggregate/aggregate.md

14

CHANGELOG.md

@@ -0,17 +1,21 @@

# v2.0.1
- [fix] 修复 db transaction add 接口未携带事务 ID 导致异常问题
# v2.0.0
- [add] 支持db新特性&灰度兼容
- [add] 支持 db 新特性&灰度兼容
# v1.1.1
- [fix] 修复函数调函数时请求签名问题
- [fix] 修复函数调函数时请求签名问题
# v1.1.0
- [add] 支持函数灰度发布
- [fix] 修复elemMatch中使用neq无效bug
- [add] 支持函数灰度发布
- [fix] 修复 elemMatch 中使用 neq 无效 bug
# v1.0.2
- [fix] 本地调试逻辑优化
- [fix] 本地调试逻辑优化

@@ -18,0 +22,0 @@ # v1.0.0

@@ -1,33 +0,116 @@

### 获取auth的引用
# 登录鉴权
## getUserInfo
#### 1. 接口描述
接口功能:获取用户信息
接口声明:`getUserInfo(): Object`
#### 2. 输入参数
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| ------------ | ------ | ---- | ------------------------------------------- |
| openId | string | 是 | 微信 openId,非微信授权登录则空 |
| appId | string | 是 | 微信 appId,非微信授权登录则空 |
| uid | string | 是 | 用户唯一 ID |
| customUserId | string | 是 | 开发者自定义的用户唯一 id,非自定义登录则空 |
#### 4. 示例代码
```js
const tcb = require('@cloudbase/node-sdk');
const app = tcb.init({env:'xxx', credentials:'xxx'})
const auth = app.auth();
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({ env: 'xxx' })
const auth = app.auth()
exports.main = async (event, context) => {
const {
openId, //微信openId,非微信授权登录则空
appId, //微信appId,非微信授权登录则空
uid, //用户唯一ID
customUserId //开发者自定义的用户唯一id,非自定义登录则空
} = auth.getUserInfo()
console.log(openId, appId, uid, customUserId)
}
```
#### 获取用户信息
## getClientIP
#### 1. 接口描述
接口功能:获取客户端 IP
接口声明:`getClientIP(): string`
#### 2. 输入参数
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | --------- |
| - | string | 是 | 客户端 IP |
#### 4. 示例代码
```js
const {
openId, //微信openId,非微信授权登录则空
appId, //微信appId,非微信授权登录则空
uid, //用户唯一ID
customUserId //开发者自定义的用户唯一id,非自定义登录则空
} = auth.getUserInfo()
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({ env: 'xxx' })
const auth = app.auth()
exports.main = async (event, context) => {
const ip = auth.getClientIP() // string
console.log(ip)
}
```
#### 获取客户端IP
## createTicket
#### 1. 接口描述
接口功能:获取自定义登录的登录凭据 ticket
接口声明:`createTicket(): string`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |
| ------------ | ------ | ---- | ------------------------------ |
| customUserId | string | 是 | 开发者自定义的用户唯一 id |
| option | string | 是 | 微信 appId,非微信授权登录则空 |
#### option
| 字段 | 类型 | 必填 | 说明 |
| ------- | ------ | ---- | ----------------------- |
| refresh | number | 否 | access_token 的刷新时间 |
| expire | number | 否 | access_token 的过期时间 |
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | --------------------- |
| - | string | 是 | 自定义登录凭据 ticket |
#### 4. 示例代码
```js
const ip = auth.getClientIP()
```
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({ env: 'xxx' })
#### 获取自定义登录的登录凭据ticket
const auth = app.auth()
```js
const customUserId = '123456' // 开发者自定义的用户唯一id
const ticket = auth.createTicket(customUserId, {
refresh: 3600 * 1000, // access_token的刷新时间
refresh: 3600 * 1000 // access_token的刷新时间
})
console.log(ticket)
```

@@ -1,18 +0,64 @@

#### 获取云函数执行的 env
# 环境
## SYMBOL_CURRENT_ENV
字段说明: 初始化时使用该字段,可指定请求当前云函数的环境
#### 示例代码
```js
// 云函数环境下示例代码
const tcb = require('@cloudbase/node-sdk')
// 取当前云函数的环境初始化
const app = tcb.init({ env: tcb.SYMBOL_CURRENT_ENV })
/**
* @returns string
*/
const env = tcb.SYMBOL_CURRENT_ENV
exports.main = async (event, context) => {
/**
* @returns string
*/
// todo
}
```
#### 解析云函数环境下的环境变量
## parseContext
#### 1. 接口描述
接口功能:解析云函数环境下的环境变量(参数取用 云函数入口参数 context 即可)
接口声明:`parseContext(context): Object`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |
| ------------------ | ------ | ---- | -------------- |
| memory_limit_in_mb | Number | 是 | 云函数内存限制 |
| time_limit_in_ms | Number | 是 | 运行时间限制 |
| request_id | String | 是 | 请求 ID |
| environ | String | 是 | 环境变量字符串 |
| function_version | String | 是 | 云函数版本 |
| function_name | String | 是 | 云函数名 |
| namespace | String | 是 | 命名空间 |
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| ------------------ | ------ | ---- | ------------------------------------------ |
| memory_limit_in_mb | Number | 是 | 云函数内存限制 |
| time_limit_in_ms | Number | 是 | 运行时间限制 |
| request_id | String | 是 | 请求 ID |
| environ | Object | 是 | 环境变量对象(含用户设置的自定义环境变量值) |
| function_version | String | 是 | 云函数版本 |
| function_name | String | 是 | 云函数名 |
| namespace | String | 是 | 命名空间 |
#### 4. 示例代码
```javascript
const tcb = require('@cloudbase/node-sdk')
const envObj = tcb.parseContext(context) // context 参数 取自云函数入口函数handler的context对象
exports.main = async (event, context) => {
const envObj = tcb.parseContext(context) // context 参数 取自云函数入口函数handler的context对象
console.log(envObj) // 打印云函数环境变量
}
```

@@ -1,50 +0,63 @@

## 云函数
# 云函数
### 执行函数
callFunction(object)
## callFunction
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| object | Object | 是 | 云函数请求对象
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number}
#### 1. 接口描述
请求参数 object
接口功能:执行云函数
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| name | string | 是 | 云函数名称
| data | object | 否 | 云函数参数
接口声明:`callFunction(object: IFunctionParams, opts: Object): Promise<Object>`
响应参数
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| code | string | 否 | 状态码,操作成功则不返回
| message | string | 否 | 错误描述
| result | object | 否 | 云函数执行结果
| requestId | string | 否 | 请求序列号,用于错误排查
| 字段 | 类型 | 必填 | 说明 |
| ------ | --------------- | ---- | ------------------------------------------------------------ |
| object | IFunctionParams | 是 | 云函数调用请求参数 |
| opts | Object | 否 | 自定义配置,目前支持 SDK 请求超时时间设置,{timeout: number} |
示例代码
##### IFunctionParams
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ---------- |
| name | string | 是 | 云函数名称 |
| data | object | 否 | 云函数参数 |
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ------------------------ |
| code | string | 否 | 状态码,操作成功则不返回 |
| message | string | 否 | 错误描述 |
| result | object | 否 | 云函数执行结果 |
| requestId | string | 否 | 请求序列号,用于错误排查 |
#### 4. 示例代码
```javascript
const tcb = require("@cloudbase/node-sdk");
const app = tcb.init()
let result = await app.callFunction({
name: "test",
// 云函数环境下示例代码
// 初始化
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: 'xxx'
})
exports.main = async (event, context) => {
const res = await app.callFunction({
name: 'test',
data: { a: 1 }
});
```
})
console.log(res) // 打印函数调用结果
调用云函数设置自定义超时
```javascript
const tcb = require("@cloudbase/node-sdk");
const app = tcb.init()
let result = await app.callFunction({
name: "test",
data: { a: 1 }
}, {
timeout: 5000
});
const res1 = await app.callFunction(
{
name: 'test',
data: { a: 1 }
},
{
timeout: 5000
}
)
console.log(res1)
}
```

@@ -1,5 +0,13 @@

## 应用初始化
# 初始化
参数
## init
#### 1. 接口描述
接口功能:SDK 实例初始化
接口声明:`init(object: Object): Promise<Object>`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |

@@ -15,2 +23,10 @@ | ----------- | ------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------ |

#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------------ |
| - | Object | 是 | tcb 实例对象 |
#### 4. 示例代码
```javascript

@@ -20,2 +36,3 @@ // 初始化示例

// 初始化资源
// 云函数下不需要secretId和secretKey。

@@ -38,7 +55,7 @@ // env如果不指定将使用默认环境

//获取执行当前云函数的环境
tcb.SYMBOL_CURRENT_ENV
const currentEnv = tcb.SYMBOL_CURRENT_ENV
//云函数下指定环境为当前的执行环境
const app = tcb.init({
env: tcb.SYMBOL_CURRENT_ENV
env: currentEnv
})

@@ -53,3 +70,3 @@

//初始化环境'xx'和'zz'
const app = tcb.init({
const app1 = tcb.init({
env: 'xx'

@@ -56,0 +73,0 @@ })

@@ -1,10 +0,12 @@

## 介绍
# 介绍
TCB 提供开发应用所需服务和基础设施。CloudBase Server Node.js SDK 让你可以在服务端(如腾讯云云函数或 云主机)使用 Node.js 服务访问 TCB 的的服务。
Cloudbase Server Node.js SDK 让你可以在服务端(如腾讯云云函数或 云主机 等)使用 Node.js 服务访问 TCB 的的服务,如云函数调用,文件上传下载,数据库集合文档操作等,方便快速搭建应用。
需要 Node.js v8.9 及以上版本。
> ⚠️ 当你计划在项目中使用 @cloudbase/node-sdk 替代 tcb-admin-node 时,请务必阅读[迁移文档](./packageUpgrade.md)
## 安装
CloudBase Server Node.js SDK 可以通过 npm 安装:
Cloudbase Server Node.js SDK 可以通过 npm 安装:

@@ -15,2 +17,4 @@ ```bash

## 使用示例
要在你的代码内使用该模块:

@@ -17,0 +21,0 @@

@@ -1,19 +0,125 @@

## 打印日志
# 打印日志
## log
#### 1. 接口描述
接口功能:按 log 级别上报日志
接口声明:`log(data: Object): void`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | -------------- |
| - | Object | 是 | 打印的日志对象 |
#### 3. 返回结果
#### 4. 示例代码
```javascript
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init()
let logMsg = {name: 'luke', age: '25'} // msg必须为对象
let logMsg = { name: 'luke', age: '25' } // msg必须为对象
// 输出log级别
app.logger().log(logMsg)
exports.main = async (event, context) => {
// 输出log级别
app.logger().log(logMsg)
}
```
// 输出warn级别
app.logger().warn(logMsg)
## warn
// 输出error级别
app.logger().error(logMsg)
#### 1. 接口描述
// 输出info级别
app.logger().info(logMsg)
接口功能:按 warn 级别上报日志
接口声明:`warn(data: Object): void`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | -------------- |
| - | Object | 是 | 打印的日志对象 |
#### 3. 返回结果
#### 4. 示例代码
```javascript
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init()
let logMsg = { name: 'luke', age: '25' } // msg必须为对象
exports.main = async (event, context) => {
// 输出warn级别
app.logger().warn(logMsg)
}
```
## error
#### 1. 接口描述
接口功能:按 error 级别上报日志
接口声明:`error(data: Object): void`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | -------------- |
| - | Object | 是 | 打印的日志对象 |
#### 3. 返回结果
#### 4. 示例代码
```javascript
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init()
let logMsg = { name: 'luke', age: '25' } // msg必须为对象
exports.main = async (event, context) => {
// 输出error级别
app.logger().error(logMsg)
}
```
## info
#### 1. 接口描述
接口功能:按 info 级别上报日志
接口声明:`info(data: Object): void`
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | -------------- |
| - | Object | 是 | 打印的日志对象 |
#### 3. 返回结果
#### 4. 示例代码
```javascript
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init()
let logMsg = { name: 'luke', age: '25' } // msg必须为对象
exports.main = async (event, context) => {
// 输出info级别
app.logger().info(logMsg)
}
```

@@ -1,205 +0,222 @@

## 存储
# 存储
<!-- TOC -->
## uploadFile
- [上传文件](#上传文件)
- [获取文件下载链接](#获取文件下载链接)
- [删除文件](#删除文件)
- [下载文件](#下载文件)
#### 1. 接口描述
<!-- /TOC -->
接口功能:上传文件到文件管理服务
### 上传文件
接口声明:`uploadFile(object: Object): Promise<Object>`
uploadFile(object)
#### 2. 输入参数
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| object | Object | 是 | 上传文件请求参数
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number}
| 字段 | 类型 | 必填 | 说明 |
| ----------- | ------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| cloudPath | String | 是 | 文件的绝对路径,包含文件名。例如 foo/bar.jpg、foo/bar/baz.jpg 等,不能包含除[0-9 , a-z , A-Z]、/、!、-、\_、.、、\*和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构。[查看详情](https://cloud.tencent.com/document/product/436/13324) |
| fileContent | fs.ReadStream | 是 | buffer 或要上传的文件[可读流](https://nodejs.org/api/stream.html#stream_class_stream_readable) |
请求参数 object
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| cloudPath | string | 是 | 文件的绝对路径,包含文件名。例如foo/bar.jpg、foo/bar/baz.jpg等,不能包含除[0-9 , a-z , A-Z]、/、!、-、_、.、、*和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构。[查看详情](https://cloud.tencent.com/document/product/436/13324)
| fileContent | fs.ReadStream | 是 | buffer或要上传的文件[可读流](https://nodejs.org/api/stream.html#stream_class_stream_readable)
| 字段 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | --------------------------------------- |
| fileID | string | 否 | 文件唯一 ID,用来访问文件,建议存储起来 |
| requestId | string | 是 | 请求序列号,用于错误排查 |
| code | string | 否 | 状态码,操作成功则不返回 |
| message | string | 否 | 错误描述,操作成功则不返回 |
响应参数
#### 4. 示例代码
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回
| message | string | 否 | 错误描述
| fileID | fileID | 是 | 文件唯一ID,用来访问文件,建议存储起来
| requestId | string | 否 | 请求序列号,用于错误排查
示例代码
```javascript
const tcb = require("@cloudbase/node-sdk");
const app = tcb.init()
const fs = require("fs");
// 初始化
const tcb = require('@cloudbase/node-sdk')
const fs = require('fs')
let result = await app.uploadFile({
cloudPath: "test-admin.jpeg",
fileContent: fs.createReadStream(`${__dirname}/cos.jpeg`)
});
const app = tcb.init({
env: 'xxx'
})
// 设置自定义超时时间
let result = await app.uploadFile({
cloudPath: "test-admin.jpeg",
exports.main = async (event, context) => {
const result = await app.uploadFile({
cloudPath: 'test-admin.jpeg',
fileContent: fs.createReadStream(`${__dirname}/cos.jpeg`)
}, {
timeout: 5000
});
})
console.log(result.fileID) // 输出文件ID
}
```
## getTempFileURL
#### 1. 接口描述
### 获取文件下载链接
接口功能:获取文件 CDN 下载链接
getTempFileURL(object)
接口声明:`getTempFileURL(object: IGetTempFileURLOpts, opts: Object): Promise<Object>`
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| object | Object | 是 | 获取下载链接请求参数
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number}
#### 2. 输入参数
请求参数 object
| 字段 | 类型 | 必填 | 说明 |
| ------ | ------------------- | ---- | ----------------------------------------------------- |
| object | IGetTempFileURLOpts | 是 | 获取下载链接请求参数 |
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number} |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| fileList | &lt;Array&gt;.string | 是 | 要下载的文件ID组成的数组
##### IGetTempFileURLOpts
fileList
| 字段 | 类型 | 必填 | 说明 |
| -------- | -------------------------------- | ---- | -------------------------- |
| fileList | &lt;Array&gt;.string Or fileItem | 是 | 要下载的文件 ID 组成的数组 |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| fileID | string | 是 | 文件ID
| maxAge | Integer | 是 | 文件链接有效期
##### fileItem
响应参数
| 字段 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------- |
| fileID | string | 是 | 文件 ID |
| maxAge | number | 是 | 文件链接有效期 |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则为SUCCESS
| message | string | 否 | 错误描述
| fileList | &lt;Array&gt;.object | 否 | 存储下载链接的数组
| requestId | string | 否 | 请求序列号,用于错误排查
#### 3. 返回结果
fileList
| 字段 | 类型 | 必填 | 说明 |
| --------- | ------------------------- | ---- | ---------------------------- |
| fileList | &lt;Array&gt;.fileUrlItem | 否 | 存储下载链接的数组 |
| requestId | string | 是 | 请求序列号,用于错误排查 |
| code | string | 否 | 状态码,操作成功则为 SUCCESS |
| message | string | 否 | 错误描述 |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 删除结果,成功为SUCCESS
| fileID | string | 是 | 文件ID
| tempFileURL | string | 是 | 文件访问链接
##### fileUrlItem
示例代码
| 字段 | 类型 | 必填 | 说明 |
| ----------- | ------ | ---- | ------------------------ |
| code | string | 否 | 删除结果,成功为 SUCCESS |
| fileID | string | 是 | 文件 ID |
| tempFileURL | string | 是 | 文件访问链接 |
#### 4. 示例代码
```javascript
let result = await app.getTempFileURL({
// 初始化
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: 'xxx'
})
exports.main = async (event, context) => {
const result = await app.getTempFileURL({
fileList: ['cloud://test-28farb/a.png']
});
})
// 设置自定义超时时间
let result = await app.getTempFileURL({
fileList: ['cloud://test-28farb/a.png']
}, {
timeout: 5000
});
result.fileList.forEach(item => {
console.log(item.tempFileURL) // 打印文件访问链接
})
}
```
### 删除文件
## deleteFile
deletfile(object)
#### 1. 接口描述
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| object | Object | 是 | 删除文件请求参数
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number}
接口功能:删除文件
请求参数 object
接口声明:`deleteFile(object: IDeleteFileOpts, opts: Object): Promise<Object>`
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| fileList | &lt;Array&gt;.string | 是 | 要删除的文件ID组成的数组
#### 2. 输入参数
响应参数
| 字段 | 类型 | 必填 | 说明 |
| ------ | --------------- | ---- | ----------------------------------------------------- |
| object | IDeleteFileOpts | 是 | 删除文件请求参数 |
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number} |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回
| message | string | 否 | 错误描述
| fileList | &lt;Array&gt;.object | 否 | 删除结果组成的数组
| requestId | string | 否 | 请求序列号,用于错误排查
##### IDeleteFileOpts
fileList
| 字段 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | -------------------------- |
| fileList | &lt;Array&gt;.string | 是 | 要删除的文件 ID 组成的数组 |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 删除结果,成功为SUCCESS
| fileID | string | 是 | 文件ID
#### 3. 返回结果
示例代码
| 字段 | 类型 | 必填 | 说明 |
| --------- | ---------------------------- | ---- | ------------------------ |
| code | string | 否 | 状态码,操作成功则不返回 |
| message | string | 否 | 错误描述 |
| fileList | &lt;Array&gt;.deleteFileItem | 否 | 删除结果组成的数组 |
| requestId | string | 是 | 请求序列号,用于错误排查 |
##### deleteFileItem
| 字段 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------ |
| code | string | 否 | 删除结果,成功为 SUCCESS |
| fileID | string | 是 | 文件 ID |
#### 4. 示例代码
```javascript
let result = await app.deleteFile({
fileList: [
"HHOeahVQ0fRTDsums4GVgMCsF6CE3wb7kmIkZbX+yilTJE4NPSQQW5EYks"
]
});
// 初始化
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: 'xxx'
})
// 设置自定义超时
let result = await app.deleteFile({
fileList: [
"HHOeahVQ0fRTDsums4GVgMCsF6CE3wb7kmIkZbX+yilTJE4NPSQQW5EYks"
]
}, {
timeout: 5000
});
exports.main = async (event, context) => {
const result = await app.deleteFile({
fileList: ['HHOeahVQ0fRTDsums4GVgMCsF6CE3wb7kmIkZbX+yilTJE4NPSQQW5EYks']
})
result.fileList.forEach(item => {
if (item.code === 'SUCCESS') {
// 文件删除成功
}
})
}
```
### 下载文件
## downloadFile
downloadFile(object)
#### 1. 接口描述
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | ---
| object | Object | 是 | 下载文件请求参数
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number}
接口功能:下载文件到本地
请求参数 object
接口声明:`downloadFile(object: IDownloadFileOpts, opts: Object): Promise<Object>`
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| fileID | string | 是 | 要下载的文件的id
| tempFilePath | string | 否 | 下载的文件要存储的位置
#### 2. 输入参数
响应参数
| 字段 | 类型 | 必填 | 说明 |
| ------ | ----------------- | ---- | ----------------------------------------------------- |
| object | IDownloadFileOpts | 是 | 下载文件请求参数 |
| opts | Object | 否 | 自定义配置,目前只支持超时时间设置,{timeout: number} |
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回
| message | string | 否 | 错误描述
| fileContent | Buffer | 否 | 下载的文件的内容。如果传入tempFilePath则不返回该字段
| requestId | string | 否 | 请求序列号,用于错误排查
##### IDownloadFileOpts
示例代码
| 字段 | 类型 | 必填 | 说明 |
| ------------ | ------ | ---- | ---------------------- |
| fileID | string | 是 | 要下载的文件的 id |
| tempFilePath | string | 否 | 下载的文件要存储的位置 |
#### 3. 返回结果
| 字段 | 类型 | 必填 | 说明 |
| ----------- | ------ | ---- | ------------------------------------------------------ |
| code | string | 否 | 状态码,操作成功则不返回 |
| message | string | 否 | 错误描述 |
| fileContent | buffer | 否 | 下载的文件的内容。如果传入 tempFilePath 则不返回该字段 |
| requestId | string | 是 | 请求序列号,用于错误排查 |
#### 4. 示例代码
```javascript
let result = await app.downloadFile({
fileID: "cloud://aa-99j9f/my-photo.png",
// 初始化
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: 'xxx'
})
exports.main = async (event, context) => {
const result = await app.downloadFile({
fileID: 'cloud://aa-99j9f/my-photo.png'
// tempFilePath: '/tmp/test/storage/my-photo.png'
});
})
// 自定义超时
let result = await app.downloadFile({
fileID: "cloud://aa-99j9f/my-photo.png",
// tempFilePath: '/tmp/test/storage/my-photo.png'
}, {
timeout: 5000
});
// 未传入tempFilePath 可打印fileContent, 传入则进入对应目录查看文件
console.log(result.fileContent)
}
```
{
"name": "@cloudbase/node-sdk",
"version": "2.0.0",
"version": "2.0.1",
"description": "tencent cloud base server sdk for node.js",

@@ -31,3 +31,3 @@ "main": "lib/index.js",

"dependencies": {
"@cloudbase/database": "1.0.0",
"@cloudbase/database": "1.0.1",
"@cloudbase/signature-nodejs": "1.0.0-beta.0",

@@ -34,0 +34,0 @@ "@types/retry": "^0.12.0",

{
"name": "@cloudbase/node-sdk",
"version": "2.0.0",
"version": "2.0.1",
"description": "tencent cloud base server sdk for node.js",

@@ -31,3 +31,3 @@ "main": "lib/index.js",

"dependencies": {
"@cloudbase/database": "1.0.0",
"@cloudbase/database": "1.0.1",
"@cloudbase/signature-nodejs": "1.0.0-beta.0",

@@ -34,0 +34,0 @@ "@types/retry": "^0.12.0",

# Tencent Cloud Base(TCB) Server Node.js SDK
[![NPM Version](https://img.shields.io/npm/v/@cloudbase/node-sdk/beta)](https://www.npmjs.com/package/@cloudbase/node-sdk)
![node (scoped)](https://img.shields.io/node/v/@cloudbase/node-sdk)
[![Coverage Status](https://coveralls.io/repos/github/TencentCloudBase/node-sdk/badge.svg?branch=master)](https://coveralls.io/github/TencentCloudBase/node-sdk?branch=master)
> ⚠️ 当你计划在项目中使用 @cloudbase/node-sdk 替代 tcb-admin-node 时,请务必阅读[迁移文档](./docs/packageUpgrade.md)
> ⚠️ 当你计划在项目中使用 @cloudbase/node-sdk 替代 tcb-admin-node 时,请务必阅读[迁移文档](./docs/packageChange.md)
## 目录

@@ -47,5 +43,5 @@

- [存储](docs/storage.md)
- [数据库](docs/database.md)
- [数据库](docs/database/database.md)
- [云函数](docs/functions.md)
- [鉴权](./docs/auth.md)
- [环境](./docs/env.md)

@@ -31,10 +31,6 @@ import * as config from '../config.local'

} catch (e) {
console.log('debug:', e)
// throw e
}
console.log('result:', result)
// const getRes = await collection.doc(result.id).get()
// console.log('getRes:', getRes)

@@ -41,0 +37,0 @@ if (result.ids.length !== num) {

@@ -59,3 +59,2 @@ import * as assert from 'power-assert'

const insertRes = await transaction.collection(collectionName).add(insertDoc)
console.log('insertRes:', insertRes)
assert(insertRes.inserted === 1)

@@ -67,3 +66,2 @@

.get()
console.log('doc:', doc)
assert(doc.data, insertDoc)

@@ -173,2 +171,8 @@

.get()
const addDoc = await transaction
.collection(collectionName)
.add({ _id: '5', category: 'hope' })
assert.deepStrictEqual(addDoc.id, '5')
assert.deepStrictEqual(doc.data, data[0])

@@ -175,0 +179,0 @@ const res = await transaction.rollback()

@@ -7,3 +7,3 @@ import tcb from '../src/index'

describe('tcb.init: 初始化tcb', () => {
it('mock 导入本地config报错', async () => {
it.skip('mock 导入本地config报错', async () => {
jest.resetModules()

@@ -10,0 +10,0 @@ jest.mock('./config', () => {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc