在内容媒体库中上传图片

时间:2016-01-12 07:56:09

标签: javascript angularjs image-uploading contentful

有人可以指导我如何通过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);

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

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

创建/更新资产时,您可以为其提供一个将从中提取资产的网址。

不幸的是,通过API,现在无法从本地计算机上传资产(您可以通过用户界面进行上传)。

创建/更新资产后,您需要触发处理。处理将获取资产并将其上传到Contentful系统。

如果您使用contentful-management.js管理API SDK,则可以查看如何create an asset以及如何process an asset

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

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

不幸的是,目前还没有关于资产实际处理完毕的回调或任何形式的通知,因此您需要获取资产并查看该资产是否已更改,如果没有,请再试一次

希望有所帮助。