正在尝试将图像上传到 VIA Contentful Content Management API JAVA
Trying to upload image to VIA Contentful Content Management API JAVA
我正在尝试通过内容管理上传图片 API。我想要实现的是:将图像上传到预定义的图像内容模型,然后通过 Content Delivery API 获取 url - 基本上我希望使用 Contentful 作为我自己的图像服务器存储。
有没有办法将图像作为 base64 string/byte 数组发送? CMA 期望的媒体对象类型对我来说不是很清楚,我尝试将图像作为字节数组发送,但它抱怨 "Links must be Objects and not Arrays" 。这是我目前所拥有的:
public static void createImageEntity(byte[] imageAsBase64, 字符串名称) {
// Create the client with given acces token
final CMAClient client = new CMAClient
.Builder()
.setAccessToken(CDA_TOKEN)
.build();
// Create new entry for given client
final CMAEntry entry = new CMAEntry()
.setId(name + "-id")
.setField("title", name, "en-US")
.setField("photo", imageAsBase64, "en-US");
final CMAEntry createdEntry = client
.entries()
.create(SPACE_ID, IMAGE_CONTENT_TYPE_ID, entry);
}
您不能像在此处那样将字段直接设置为字节数组。您首先需要将二进制文件上传到 Contentful,然后将其包装在资产中,然后从您的输入字段中引用该资产。
在 Java 中,您基本上是这样创建上传的:
final CMAUpload upload =
client
.uploads()
.create("<space_id>",
// this stream should point to your file to be uploaded.
new FileInputStream("your file")
);
请注意,像这样上传二进制文件仍然是一项相当新的功能,目前处于测试阶段。您可以在此博客中阅读更多相关信息 post:https://www.contentful.com/blog/2017/03/02/uploading-files-directly-to-contentful/
我正在尝试通过内容管理上传图片 API。我想要实现的是:将图像上传到预定义的图像内容模型,然后通过 Content Delivery API 获取 url - 基本上我希望使用 Contentful 作为我自己的图像服务器存储。
有没有办法将图像作为 base64 string/byte 数组发送? CMA 期望的媒体对象类型对我来说不是很清楚,我尝试将图像作为字节数组发送,但它抱怨 "Links must be Objects and not Arrays" 。这是我目前所拥有的:
public static void createImageEntity(byte[] imageAsBase64, 字符串名称) {
// Create the client with given acces token
final CMAClient client = new CMAClient
.Builder()
.setAccessToken(CDA_TOKEN)
.build();
// Create new entry for given client
final CMAEntry entry = new CMAEntry()
.setId(name + "-id")
.setField("title", name, "en-US")
.setField("photo", imageAsBase64, "en-US");
final CMAEntry createdEntry = client
.entries()
.create(SPACE_ID, IMAGE_CONTENT_TYPE_ID, entry);
}
您不能像在此处那样将字段直接设置为字节数组。您首先需要将二进制文件上传到 Contentful,然后将其包装在资产中,然后从您的输入字段中引用该资产。
在 Java 中,您基本上是这样创建上传的:
final CMAUpload upload =
client
.uploads()
.create("<space_id>",
// this stream should point to your file to be uploaded.
new FileInputStream("your file")
);
请注意,像这样上传二进制文件仍然是一项相当新的功能,目前处于测试阶段。您可以在此博客中阅读更多相关信息 post:https://www.contentful.com/blog/2017/03/02/uploading-files-directly-to-contentful/