0

目前我可以将多个图像添加到 kentico 中。但是如何使用 Kentico API 将图像添加到特定文件夹中。我在 Node.js 项目中使用 Kentico/Kontent-management 包。

4

1 回答 1

1

我会检索文件夹desiredFolder并选择您想要的文件夹idextenal_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 回答