0

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

任何帮助表示赞赏,谢谢。

4

1 回答 1

2

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

当您创建/更新资产时,您可以为它提供一个从其中获取资产的 url。

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

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

如果您使用管理 API SDK contentful-management.js,您可以了解如何创建资产以及如何处理资产

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

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

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

希望有帮助。

于 2016-01-12T08:25:15.493 回答