数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到企业创建者的邮箱中。
通过 数据表 ID
实例化一个 TableObject
对象,以下操作都是在该对象上进行操作:
let MyTableObject = new BaaS.TableObject(tableID)
参数说明
数据导出
MyTableObject.exportData(fileType, mode, start, end)
参数说明
导出文件的格式,支持 csv、json、xlsx 格式
导出任务支持两种模式:
示例代码
Copy 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
}
}
Copy function exportData() {
let MyTableObject = new BaaS.TableObject(tableID)
MyTableObject.exportData('json', 'all').then(res => {
// success
callback(null, res)
}).catch(err => {
// error
callback(err)
})
}
返回示例 (res.status === 200)
res.data:
数据导入
MyTableObject.importData({dataFileUrl, dataFilePath}, fileType)
参数说明
准备导入的备份数据 url (dataFileUrl 与 dataFile 两者必须指定一个)
文件路径(目前仅支持沙箱环境的 tmp 目录) / 文件 Buffer
导入文件的格式,支持 csv、json、xlsx 格式
示例代码
Copy 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
}
}
Copy 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)
})
})
}
返回示例 (res.status === 200)
res.data:
获取单个导出任务信息
Copy MyTableObject.getExportTask(jobID)
参数说明
返回参数说明
任务状态,等待处理:pending、正在处理:ready、已完成:finish
代码示例
Copy async function getExportTask() {
try {
let MyTableObject = new BaaS.TableObject(tableID)
let res = await MyTableObject.getExportTask('RcnyXjPH8zLSsUYrIlPsG5qnBERYFrGF')
// success
return res
} catch(err) {
// error
throw err
}
}
返回示例
Copy {
"created_at": 1574405175,
"download_url": null,
"file_name": null,
"file_type": "json",
"job_id": "RcnyXjPH8zLSsUYrIlPsG5qnBERYFrGF",
"operation": "export",
"status": "pending",
"updated_at": 1574405175
}
状态码说明
200
: 成功
404
: 找不到 job_id 对应的任务
批量获取导出任务信息
Copy MyTableObject.getExportTasks()
代码示例
Copy async function getExportTasks() {
try {
let MyTableObject = new BaaS.TableObject(tableID)
let res = await MyTableObject.getExportTasks()
// success
return res
} catch(err) {
// error
throw err
}
}
返回示例
Copy {
"meta": {
"limit": 20,
"next": null,
"offset": 0,
"previous": null,
"total_count": 1
},
"objects": [
{
"created_at": 1574405175,
"download_url": null,
"file_name": null,
"file_type": "json",
"job_id": "RcnyXjPH8zLSsUYrIlPsG5qnBERYFrGF",
"operation": "export",
"status": "pending",
"updated_at": 1574405175
}
]
}
状态码说明
200
: 成功