我正在尝试使用content-management-api createAsset
。
我正在使用的JavaScript脚本是
./contentful/contentful-import.js
const contentful = require('contentful-management');
const client = contentful.createClient({
accessToken:'AUTHTOKEN'
});
client
.getSpace('SPACE')
.then(space => {
space.createAsset({
fields: {
title: {
'en-US': 'Example 1'
},
description: {
'en-US': 'Example Description'
},
file: {
'en-US': {
contentType: 'image/jpeg',
fileName: 'example1.jpeg',
upload:'https://example1.jpeg'
}
}
}
}),
space.createAsset({
fields: {
title: {
'en-US': 'Example 2'
},
description: {
'en-US': 'Example Description'
},
file: {
'en-US': {
contentType: 'image/jpeg',
fileName: 'example2.jpeg',
upload:'https://example2.jpeg'
}
}
}
}),
//... 700 other assets
})
.then(asset => asset.processForAllLocales())
.then(asset => console.log(asset))
.catch(console.error)
我运行的
CLI
函数是contentful space migration ./contentful/contentful-import.js
哪个返回错误
TypeError: migrationCreator is not a function
我已经在内容文档中找到了其他地方,但是看不到有任何帮助。
我是在尝试正确上传资产还是做错了什么?
最佳答案
您编写的脚本是“普通” node.js脚本。
node contentful-import.js
为此将做的很好。
contentful space migration
使用特定格式的特定脚本(必须导出migrationCreator
)。有效的迁移将是:module.exports = function (migration, context) {
const dog = migration.createContentType('dog');
const name = dog.createField('name');
name.type('Symbol').required(true);
};
contentful-cli在幕后使用contentful-migration。您可以在此处找到更多文档。
我将立即打开CLI文档的PR。 :)