2017-04-09 87 views
0

我想通過內容管理API上傳圖片。我想要實現的是:將圖像上傳到預定義的圖像內容模型,然後通過Content Delivery API獲取URL - 基本上我希望將Contentful用作我自己的圖像服務器存儲。試圖上傳圖像到威盛內容管理API JAVA

有沒有辦法將圖像作爲base64字符串/字節數組發送? CMA期望的媒體對象類型對我來說不是很清楚,我嘗試將圖像作爲字節數組發送,但它抱怨「鏈接必須是對象而不是數組」。以下是我迄今爲止:

公共靜態無效createImageEntity(字節[] 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); 
} 

回答

1

不能直接某個字段設置爲一個字節數組,你正在做的這裏。首先需要將二進制文件上傳到Contentful,然後將其包裝到資產中,然後從輸入字段中引用該資產。

在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/

+0

我已閱讀有關,但似乎沒有任何上傳()我的CMAClient,即使我有從mvnrepository最新版本。任何想法,我可以找到那個? –

+0

可能是Java SDK尚不支持最新的穩定版本。我知道它即將到來。另一種方法是將您的二進制文件上傳到Dropbox,然後使用標準的uploadUrl字段將新創建的資產指向此目錄。 – Robban

+0

我管理畢竟做我想要的保管箱api :)感謝您的提示! –