有人可以指导我如何通过angularjs或javascript在内容媒体库中上传图片吗?
我已经完成了内容丰富的文档,但我无法找到任何内容。
我找到了这个片段,但我不认为它会在媒体库中上传:
var request = new XMLHttpRequest();
request.open('POST', 'https://api.contentful.com/spaces/5smsq22uwt4m/assets');
request.setRequestHeader('Authorization', 'Bearer b4c0n73n7fu1');
request.setRequestHeader('Content-Type', 'application/vnd.contentful.management.v1+json');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = "{ \
'fields': { \
'title': { \
'en-US': 'Bacon Pancakes' \
}, \
'file': { \
'en-US': { \
'contentType': 'image/jpeg', \
'fileName': 'example.jpeg', \
'upload': 'https://example.com/example.jpg' \
} \
} \
} \
}";
request.send(body);
感谢任何帮助,谢谢。
答案 0 :(得分:2)
在Contentful上传图像或任何媒体资产有两个步骤: - 创建资产(或者更新现有资产) - 触发处理
创建/更新资产时,您可以为其提供一个将从中提取资产的网址。
不幸的是,通过API,现在无法从本地计算机上传资产(您可以通过用户界面进行上传)。
创建/更新资产后,您需要触发处理。处理将获取资产并将其上传到Contentful系统。
如果您使用contentful-management.js管理API SDK,则可以查看如何create an asset以及如何process an asset。
处理完资产后,它将处于草稿状态。为了让全世界都可以使用publish it。
但是,请注意,只有在文件中的upload
属性更改为url
属性时才能发布它。这意味着资产已经完成处理。
不幸的是,目前还没有关于资产实际处理完毕的回调或任何形式的通知,因此您需要获取资产并查看该资产是否已更改,如果没有,请再试一次
希望有所帮助。