# 存储

# uploadFile

# 1. 接口描述

接口功能:上传文件到文件管理服务

接口声明:uploadFile(object: Object): Promise<Object>

# 2. 输入参数

字段 类型 必填 说明
cloudPath String 文件的绝对路径,包含文件名。例如 foo/bar.jpg、foo/bar/baz.jpg 等,不能包含除[0-9 , a-z , A-Z]、/、!、-、_、.、、*和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构。查看详情 (opens new window)
fileContent fs.ReadStream buffer 或要上传的文件可读流 (opens new window)

# 3. 返回结果

字段 类型 必填 说明
fileID string 文件唯一 ID,用来访问文件,建议存储起来
requestId string 请求序列号,用于错误排查
code string 状态码,操作成功则不返回
message string 错误描述,操作成功则不返回

# 4. 示例代码

// 初始化
const tcb = require('tcb-admin-node')
const fs = require('fs')

const app = tcb.init({
  env: 'xxx'
})

exports.main = async (event, context) => {
  const result = await app.uploadFile({
    cloudPath: 'test-admin.jpeg',
    fileContent: fs.createReadStream(`${__dirname}/cos.jpeg`)
  })

  console.log(result.fileID) // 输出文件ID
}

# getTempFileURL

# 1. 接口描述

接口功能:获取文件 CDN 下载链接

接口声明:getTempFileURL(object: Object): Promise<Object>

# 2. 输入参数

字段 类型 必填 说明
fileList <Array>.string Or fileItem 要下载的文件 ID 组成的数组

# fileItem

字段 类型 必填 说明
fileID string 文件 ID
maxAge number 文件链接有效期

# 3. 返回结果

字段 类型 必填 说明
fileList <Array>.fileUrlItem 存储下载链接的数组
requestId string 请求序列号,用于错误排查
code string 状态码,操作成功则为 SUCCESS
message string 错误描述

# fileUrlItem

字段 类型 必填 说明
code string 删除结果,成功为 SUCCESS
fileID string 文件 ID
tempFileURL string 文件访问链接

# 4. 示例代码

// 初始化
const tcb = require('tcb-admin-node')

const app = tcb.init({
  env: 'xxx'
})

exports.main = async (event, context) => {
  const result = await app.getTempFileURL({
    fileList: ['cloud://test-28farb/a.png']
  })

  result.fileList.forEach(item => {
    console.log(item.tempFileURL) // 打印文件访问链接
  })
}

# deleteFile

# 1. 接口描述

接口功能:删除文件

接口声明:deleteFile(object: Object): Promise<Object>

# 2. 输入参数

字段 类型 必填 说明
fileList <Array>.string 要删除的文件 ID 组成的数组

# 3. 返回结果

字段 类型 必填 说明
code string 状态码,操作成功则不返回
message string 错误描述
fileList <Array>.deleteFileItem 删除结果组成的数组
requestId string 请求序列号,用于错误排查

# deleteFileItem

字段 类型 必填 说明
code string 删除结果,成功为 SUCCESS
fileID string 文件 ID

# 4. 示例代码

// 初始化
const tcb = require('tcb-admin-node')
const app = tcb.init({
  env: 'xxx'
})

exports.main = async (event, context) => {
  const result = await app.deleteFile({
    fileList: ['HHOeahVQ0fRTDsums4GVgMCsF6CE3wb7kmIkZbX+yilTJE4NPSQQW5EYks']
  })

  result.fileList.forEach(item => {
    if (item.code === 'SUCCESS') {
      // 文件删除成功
    }
  })
}

# downloadFile

# 1. 接口描述

接口功能:下载文件到本地

接口声明:downloadFile(object: Object): Promise<Object>

# 2. 输入参数

字段 类型 必填 说明
fileID string 要下载的文件的 id
tempFilePath string 下载的文件要存储的位置

# 3. 返回结果

字段 类型 必填 说明
code string 状态码,操作成功则不返回
message string 错误描述
fileContent buffer 下载的文件的内容。如果传入 tempFilePath 则不返回该字段
requestId string 请求序列号,用于错误排查

# 4. 示例代码

// 初始化
const tcb = require('tcb-admin-node')
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'
  })

  // 未传入tempFilePath 可打印fileContent, 传入则进入对应目录查看文件
  console.log(result.fileContent)
}