数据导入导出操作

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

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

let MyTableObject = new BaaS.TableObject(tableID | tableName)

参数说明

tableID 和 tableName 二选一,不能同时存在

参数名类型说明
tableIDinteger数据表的 ID
tableNamestring数据表名

数据导出

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

参数说明

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

导出任务支持两种模式:

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

示例代码

  1. async function exportData() {
  2. try {
  3. let MyTableObject = new BaaS.TableObject(tableName)
  4. let res = await MyTableObject.exportData('json', 'all')
  5. // success
  6. return res
  7. } catch(err) {
  8. // error
  9. throw err
  10. }
  11. }
  1. function exportData() {
  2. let MyTableObject = new BaaS.TableObject(tableName)
  3. MyTableObject.exportData('json', 'all').then(res => {
  4. // success
  5. callback(null, res)
  6. }).catch(err => {
  7. // error
  8. callback(err)
  9. })
  10. }

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

res.data:

  1. {
  2. "status": "ok"
  3. }

数据导入

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

参数说明

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

示例代码

  1. async function importData() {
  2. try {
  3. /* url */
  4. let MyTableObject = new BaaS.TableObject(tableName)
  5. let res = await MyTableObject.importData({dataFileUrl: dataUrl}, 'csv')
  6. // success
  7. /* 本地文件路径 */
  8. const fs = require('fs')
  9. const file = fs.createWriteStream('/tmp/data.csv')
  10. let res = await BaaS.request.get(dataUrl)
  11. file.write(res.data)
  12. file.end()
  13. let MyTable = new BaaS.TableObject(tableID)
  14. let importRes = await MyTable.importData({dataFile: '/tmp/data.csv'}, 'csv')
  15. // success
  16. return res
  17. /* Buffer */
  18. let res = await BaaS.request.get(dataUrl)
  19. let MyTable = new BaaS.TableObject(tableName)
  20. let importRes = await MyTable.importData({dataFile: Buffer.from(res.data)}, 'csv')
  21. // success
  22. return res
  23. } catch(err) {
  24. // error
  25. throw err
  26. }
  27. }
  1. function importData() {
  2. /* url */
  3. let MyTableObject = new BaaS.TableObject(tableName)
  4. MyTableObject.importData({dataFileUrl: dataUrl}, 'csv').then(res => {
  5. // success
  6. callback(null, res)
  7. }).catch(err => {
  8. // error
  9. callback(err)
  10. })
  11. /* 本地文件路径 */
  12. const fs = require('fs')
  13. const file = fs.createWriteStream('/tmp/data.csv')
  14. BaaS.request.get(dataUrl).then(res => {
  15. file.write(res.data)
  16. file.end()
  17. let MyTable = new BaaS.TableObject(tableID)
  18. MyTable.importData({dataFile: '/tmp/data.csv'}, 'csv').then(res => {
  19. // success
  20. callback(null, res)
  21. }).catch(err => {
  22. // error
  23. callback(err)
  24. })
  25. })
  26. /* Buffer */
  27. BaaS.request.get(dataUrl).then(res => {
  28. let MyTable = new BaaS.TableObject(tableName)
  29. MyTable.importData({dataFile: Buffer.from(res.data)}, 'csv').then(res => {
  30. // success
  31. callback(null, res)
  32. }).catch(err => {
  33. // error
  34. callback(err)
  35. })
  36. })
  37. }

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

res.data:

  1. {
  2. "status": "ok"
  3. }