Angular&内容丰富:无法在空间内创建资产

时间:2018-05-18 16:36:05

标签: angular contentful

我有一个使用Contentful的Angular应用程序(v.5.1.3)。我想从Angular应用程序上传资产到Contentful。根据官方网站,正确的方法是:

client.getSpace('<space_id>')
.then((space) => space.createAsset({ ... })

见这里:https://www.contentful.com/developers/docs/references/content-management-api/#/reference/assets

问题是Space对象没有createAsset方法。事实上,它唯一的方法是localesnamesystoPlainObject

我使用npm install contentful安装了Contentful。包裹有问题吗?有没有理由说明Space对象被剥夺了所有有用的方法?

谢谢,

亚历

1 个答案:

答案 0 :(得分:1)

您需要使用contentful-management.js库而不是contentful.js库才能创建资源。如果您在您提供的链接上的代码示例中注意到它正在使用管理库:

const contentful = require('contentful-management')

const client = contentful.createClient({
  accessToken: '<content_management_api_key>'
})

client.getSpace('<space_id>')
.then((space) => space.createAsset({
  fields: {
    title: {
      'en-US': 'Playsam Streamliner'
    },
    description: {
      'en-US': 'Streamliner description'
    },
    file: {
      'en-US': {
        contentType: 'image/jpeg',
        fileName: 'example.jpeg',
        upload: 'https://example.com/example.jpg'
      }
    }
  }
}))
.then((asset) => asset.processForAllLocales())
.then((asset) => console.log(asset))
.catch(console.error)