数据导入导出操作
数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到企业创建者的邮箱中。
通过 数据表 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
导出部分数据
示例代码
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
}
}
返回示例 (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 格式
示例代码
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
}
}
返回示例 (res.status === 200)
res.data:
{
"status": "ok"
}
获取单个导出任务信息
MyTableObject.getExportTask(jobID)
参数说明
jobID
String
是
建立导出任务时返回的 job_id
返回参数说明
job_id
String
导出任务 ID
status
String
任务状态,等待处理:pending、正在处理:ready、已完成:finish
operation
String
操作类型,固定为:export
file_name
String
文件名
file_type
String
文件类型
download_url
String
下载链接
created_at
Integer
任务创建时间戳
updated_at
Integer
最近一次任务更新时间戳
代码示例
async function getExportTask() {
try {
let MyTableObject = new BaaS.TableObject(tableID)
let res = await MyTableObject.getExportTask('RcnyXjPH8zLSsUYrIlPsG5qnBERYFrGF')
// success
return res
} catch(err) {
// error
throw err
}
}
返回示例
{
"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 对应的任务
批量获取导出任务信息
MyTableObject.getExportTasks()
代码示例
async function getExportTasks() {
try {
let MyTableObject = new BaaS.TableObject(tableID)
let res = await MyTableObject.getExportTasks()
// success
return res
} catch(err) {
// error
throw err
}
}
返回示例
{
"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
: 成功
Last updated
Was this helpful?