我有一个使用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
方法。事实上,它唯一的方法是locales
,name
,sys
和toPlainObject
。
我使用npm install contentful
安装了Contentful。包裹有问题吗?有没有理由说明Space
对象被剥夺了所有有用的方法?
谢谢,
亚历
答案 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)