在内容丰富的媒体库中上传图片

Upload image in contentful media library

谁能指导我如何通过 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);

感谢任何帮助,谢谢。

在 Contentful 上上传图像或任何媒体资产有两个步骤: - 创建资产(或者更新现有资产) - 触发处理

当您 create/update 资产时,您可以为其提供 url 从中获取资产的位置。

遗憾的是,目前无法通过 API 从您的本地计算机上传资产(您可以通过 UI 上传资产)。

在你create/update资产之后,你需要触发处理。处理将获取资产并将其上传到 Contentful 系统。

如果你使用 contentful-management.js,管理 API SDK,你可以看到如何 create an asset and how to process an asset.

资产处理完成后,将处于草稿状态。为了让全世界都可以使用它,您需要 publish it.

但是请注意,只有当文件中的 upload 属性 更改为 url 属性 时才能发布它。这意味着资产已完成处理。

不幸的是,目前没有回调或任何类型的资产实际完成处理的通知,因此您需要获取资产并查看 属性 是否已更改,如果没有,请重试。

希望对您有所帮助。