Skip to content

Latest commit

 

History

History
176 lines (147 loc) · 4.45 KB

File metadata and controls

176 lines (147 loc) · 4.45 KB

数据导入导出操作

数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到企业创建者的邮箱中。

通过 数据表 ID数据表名 实例化一个 TableObject 对象,以下操作都是在该对象上进行操作:

let MyTableObject = new BaaS.TableObject(tableID)

参数说明

参数名 类型 说明
tableID integer 数据表的 ID

数据导出

MyTableObject.exportData(fileType, mode, start, end)

参数说明

参数 类型 必填 说明
fileType String 导出文件的格式,支持 csv、json、xlsx 格式
mode String 导出任务的模式
start Integer / Date / String 导出部分数据的起始时间
end Integer / Date / String 导出部分数据的结束时间

导出任务支持两种模式:

说明
all 导出全部数据
part 导出部分数据

示例�代码 {% tabs exportDataAsync="async/await", exportDataPromise="promise" %} {% content "exportDataAsync" %}

exports.main = async function exportData() {
  try {
    let MyTableObject = new BaaS.TableObject(tableID)
    let res = await MyTableObject.exportData('json', 'all')
    // success
    return res
  } catch(err) {
    // error
    throw err
  }
}

{% content "exportDataPromise" %}

function exportData() {
  let MyTableObject = new BaaS.TableObject(tableID)
  MyTableObject.exportData('json', 'all').then(res => {
    // success
    callback(null, res)
  }).catch(err => {
    // error
    callback(err)
  })
}

{% endtabs %}

返回示例 (res.status === 200)

res.data:

{
  "status": "ok"
}

数据导入

MyTableObject.importData({dataFileUrl, dataFilePath}, fileType)

参数说明

参数 类型 必填 说明
dataFileUrl String 准备导入的备份数据 url (dataFileUrl 与 dataFile 两者必须指定一个)
dataFile String / Buffer 文件路径(目前仅支持沙箱环境的 tmp 目录) / 文件 Buffer
fileType String 导入文件的格式,支持 csv、json、xlsx 格式

示例代码 {% tabs importDataAsync="async/await", importDataPromise="promise" %} {% content "importDataAsync" %}

exports.main = async function importData() {
  try {
    /* url */
    let MyTableObject = new BaaS.TableObject(tableID)
    let res = await MyTableObject.importData({dataFileUrl: dataUrl}, 'csv')
    // success

    /* 本地文件路径 */
    const fs = require('fs')
    const file = fs.createWriteStream('/tmp/data.csv')
    let res = await BaaS.request.get(dataUrl)
    file.write(res.data)
    file.end()
    let MyTable = new BaaS.TableObject(tableID)
    let importRes = await MyTable.importData({dataFile: '/tmp/data.csv'}, 'csv')
    // success
    return res

    /* Buffer */
    let res = await BaaS.request.get(dataUrl)
    let MyTable = new BaaS.TableObject(tableID)
    let importRes = await MyTable.importData({dataFile: Buffer.from(res.data)}, 'csv')
    // success
    return res
  } catch(err) {
    // error
    throw err
  }
}

{% content "importDataPromise" %}

function importData() {
  /* url */
  let MyTableObject = new BaaS.TableObject(tableID)
  MyTableObject.importData({dataFileUrl: dataUrl}, 'csv').then(res => {
    // success
    callback(null, res)
  }).catch(err => {
    // error
    callback(err)
  })

  /* 本地文件路径 */
  const fs = require('fs')
  const file = fs.createWriteStream('/tmp/data.csv')
  BaaS.request.get(dataUrl).then(res => {
    file.write(res.data)
    file.end()
    let MyTable = new BaaS.TableObject(tableID)
    MyTable.importData({dataFile: '/tmp/data.csv'}, 'csv').then(res => {
      // success
      callback(null, res)
    }).catch(err => {
    // error
    callback(err)
    })
  })

  /* Buffer */
  BaaS.request.get(dataUrl).then(res => {
    let MyTable = new BaaS.TableObject(tableID)
    MyTable.importData({dataFile: Buffer.from(res.data)}, 'csv').then(res => {
      // success
      callback(null, res)
    }).catch(err => {
    // error
    callback(err)
    })
  })
}

{% endtabs %}

返回示例 (res.status === 200)

res.data:

{
  "status": "ok"
}