Я использую Content Management JS SDK, версия 5.21.1
Пытаюсь создать новый актив изображения, но получаю ошибку. Я сначала попытался загрузить изображение и вызвать createAsset:
const space = await this.client.getSpace(process.env.CONTENTFUL_SPACE_ID);
const environment = await space.getEnvironment(this.environment);
const upload = await environment.createUpload({ file: bytes });
const asset = await environment.createAsset({
fields: {
title: {
[this.locale]: title
},
description: {
[this.locale]: description
},
file: {
[this.locale]: {
fileName: fileName,
contentType: contentType,
uploadFrom: {
sys: {
type: 'Link',
linkType: 'Upload',
id: upload.sys.id
}
}
}
}
}
});
asset.processForAllLocales();
return await asset.publish();
Я также попытался напрямую использовать createAssetFromFiles:
const space = await this.client.getSpace(process.env.CONTENTFUL_SPACE_ID);
const environment = await space.getEnvironment(this.environment);
const asset = await environment.createAssetFromFiles({
fields: {
title: {
[this.locale]: title
},
description: {
[this.locale]: description
},
file: {
[this.locale]: {
fileName: fileName,
contentType: contentType,
file: bytes
}
}
}
});
asset.processForAllLocales();
return await asset.publish();
Вот ошибка, которую я получаю (одинакова для обоих вызовов) :
{
"status": 422,
"statusText": "Unprocessable Entity",
"message": "Validation error",
"details": {
"errors": [
{
"name": "required",
"path": [
"fields",
"file",
"en-US",
"url"
],
"details": "The property \"url\" is required here"
}
]
},
"request": {
"url": "assets/01Ft5vBdTHzJPzIVJdBOlE/published",
"headers": {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/vnd.contentful.management.v1+json",
"X-Contentful-User-Agent": "sdk contentful-management.js/5.21.1; platform node.js/v13.12.0; os macOS/19.4.0;",
"Authorization": "Bearer ...",
"user-agent": "node.js/v13.12.0",
"Accept-Encoding": "gzip",
"X-Contentful-Version": 1
},
"method": "put",
"payloadData": null
},
"requestId": "07778ff81872ddb45d5e1a7266436e22"
}
При чтении ваших документов у меня сложилось впечатление, что URL создается автоматически после создания ресурса, поэтому я не уверен, что означает эта ошибка.
Любая помощь с благодарностью!