数据导入导出操作
数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。
通过 数据表 ID
或 数据表名
实例化一个 TableObject
对象,以下操作都是在该对象上进行操作:
let MyTableObject = new BaaS.TableObject(tableID | tableName)
参数说明
tableID 和 tableName 二选一,不能同时存在
参数名 | 类型 | 说明 |
---|---|---|
tableID | integer | 数据表的 ID |
tableName | string | 数据表名 |
数据导出
MyTableObject.exportData(fileType, mode, start, end)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
fileType | String | 是 | 导出文件的格式,支持 csv、json、xlsx 格式 |
mode | String | 是 | 导出任务的模式 |
start | Integer / Date / String | 否 | 导出部分数据的起始时间 |
end | Integer / Date / String | 否 | 导出部分数据的结束时间 |
导出任务支持两种模式:
值 | 说明 |
---|---|
all | 导出全部数据 |
part | 导出部分数据 |
示例代码
async function exportData() {
try {
let MyTableObject = new BaaS.TableObject(tableName)
let res = await MyTableObject.exportData('json', 'all')
// success
return res
} catch(err) {
// error
throw err
}
}
function exportData() {
let MyTableObject = new BaaS.TableObject(tableName)
MyTableObject.exportData('json', 'all').then(res => {
// success
callback(null, res)
}).catch(err => {
// error
callback(err)
})
}
返回示例 (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 格式 |
示例代码
async function importData() {
try {
/* url */
let MyTableObject = new BaaS.TableObject(tableName)
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(tableName)
let importRes = await MyTable.importData({dataFile: Buffer.from(res.data)}, 'csv')
// success
return res
} catch(err) {
// error
throw err
}
}
function importData() {
/* url */
let MyTableObject = new BaaS.TableObject(tableName)
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(tableName)
MyTable.importData({dataFile: Buffer.from(res.data)}, 'csv').then(res => {
// success
callback(null, res)
}).catch(err => {
// error
callback(err)
})
})
}
返回示例 (res.status === 200)
res.data:
{
"status": "ok"
}