目前我可以将多个图像添加到 kentico 中。但是如何使用 Kentico API 将图像添加到特定文件夹中。我在 Node.js 项目中使用 Kentico/Kontent-management 包。
问问题
87 次
1 回答
1
我会检索文件夹desiredFolder
并选择您想要的文件夹id
(extenal_id
JS SDK 应该封装 Kontent REST Management API v2 的功能,在这种情况下,关键是Asset 模型的文件夹属性
const folders = await mClient.listAssetFolders()
.toPromise(); // get folders
const desiredFolder = folders.items.find(folder => folder.name = "Your delsired folder"); // select desired folder
const assetData = await getAssetDataDataFromUrl(article.image.url)
.toPromise(); // load binary how you want it
const assetObject = await mClient.uploadBinaryFile().withData(assetData).toPromise(); // upload binary
const asset = await mClient.addAsset()
.withData({
descriptions: [{
language: {
codename: argv.language
},
description: `Image for article ${article.title}`
}],
external_id: article.image.id,
file_reference: {
...assetObject.data
},
folder: {
id: desiredFolder.id,
// external_id: desiredFolder.externalId // also possible to use external ID
}
})
.toPromise();
如果您已经在 Kontent 中拥有资产,则可以将资产更新到特定文件夹:
const updatedAsset = await mClient.upsertAsset().withData({
// not sure if you need to add whole asset object like: `...asset`, but i think it is not necessary
folder: {
id: desiredFolder.id,
// external_id: desiredFolder.externalId // also possible to use external ID
}
}).toPromise()
在创建这样的脚本(即这个)时,我的工作流程是看一下在这种情况下回购测试这两个:列出文件夹和添加资产。大多数 IDE(在我的例子中是 VS Code)应该加载类型定义并通过智能帮助您处理模型结构。
于 2020-07-31T12:04:45.320 回答