java - 尝试将图像上传到 VIA Contentful Content Management API JAVA

标签 java rest base64 contentful contentful-management

我正在尝试通过内容管理 API 上传图像。我想要实现的是:将图像上传到预定义的图像内容模型,然后通过 Content Delivery API 获取 url - 基本上我希望使用 Contentful 作为我自己的图像服务器存储。

有什么方法可以将图像作为 Base64 字符串/字节数组发送吗? CMA 期望的媒体对象类型对我来说不是很清楚,我尝试将图像作为字节数组发送,但它提示 “链接必须是对象而不是数组” 。这是我到目前为止所拥有的:

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,然后将其包装在 Assets 中,然后从输入字段引用该 Assets 。

在 Java 中,您基本上可以像这样创建上传:

final CMAUpload upload =
client
    .uploads()
    .create("<space_id>",
        // this stream should point to your file to be uploaded.
        new FileInputStream("your file")
    );

请注意,像这样上传二进制文件仍然是一个相当新的功能,并且处于测试阶段。您可以在这篇博文中阅读更多相关信息:https://www.contentful.com/blog/2017/03/02/uploading-files-directly-to-contentful/

关于java - 尝试将图像上传到 VIA Contentful Content Management API JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306473/

相关文章:

java - 在不同文件中向 Java 类添加方法而不扩展该类

java - 为什么在应用 Fe-composite 时拉伸(stretch)会向下移动? SVG中如何实现多个-feComposite操作?

java - 不知道为什么 : The ResourceConfig instance does not contain any root resource classes

java - 如何从 reSTLet ClientResource 获取响应?

java - Android+Java 从服务器上的 URL 获取图像并作为字符串传递给客户端 : Base64 decode and encode not working

java - 如何在 JsonArray 中选择特定的 JsonObject?

java - JPanel 在 JScrollPane 中填充了按钮

REST API : How to ensure atomicity?

html - 使用 base64 编码将 .swf 嵌入到 html 中

ios - 如何将图像转换为 Base64Encode 字符串