我想使用服务器到服务器的 cloudkit js。用资产字段保存记录。
Asset 字段是一个 m4a 音频。保存后,音频文件损坏无法播放
Apple's Doc 不清楚 Asset 字段。
在保存到数据库的记录中,Asset 字段的值必须是 window.Blob 类型。在上面的代码片段中,assetFile 变量的类型是 window.File。
文档: https ://developer.apple.com/documentation/cloudkitjs/cloudkit/database/1628735-saverecords
但是在 nodejs 中,没有Blob或.File,我用这样的代码填充了它:
var dstFile = path.join(__dirname,"../test.m4a");
var data = fs.readFileSync(dstFile);
let buffer = Buffer.from(data);
var rec = {
recordType: "MyAttachment",
fields: {
ext: { value: ".m4a" },
file: { value: buffer }
}
}
//console.debug(rec);
mydatabase.newRecordsBatch().create(rec).commit().then(function (response) {
if (response.hasErrors) {
console.log(">>> saveAttachFile record failed");
console.warn(response.errors[0]);
} else {
var createdRecord = response.records[0];
console.log(">>> saveAttachFile record success:", createdRecord);
}
});
记录保存成功。
但是当我从 icloud.developer.apple.com/dashboard 下载音频时。
音频文件已损坏,无法播放。
它出什么问题了。谢谢你的回复。