Prevent base url on image path save through API request

Since Cockpit doesn’t easily support saving image files through an api call, I thought of saving images on an external API. So i tried the following:

Post http://otherimageurl.com/image.jpg to
http:mycockpitcmsurl.com/api/collections/save/collectionname

in the field
{

image: {
path: “SAVE IMAGE URL HERE.”
}

}

But cockpit saves its own base url in front of my external image url.
Is there a possibility to prevent cockpit CMS to automatically save the base-url of cockpit when accessing through an API post call, for example in a custom API call?

there is an add assets api entry point:

/api/cockpit/addAssets

I never tried it before and tested it now. It works well. Make sure, to name your key files[].

Javascript example: https://github.com/agentejo/cockpit/issues/763#issuecomment-434509812

Postman example:

2 Likes

Hi, this example doesn’t work for me. Is there another solution now to send images via API?

What is it that you are trying to accomplish? And in which way does the example not work out as expected?

Hi, It works very well, I forgot to declare the file as a file.

var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('files[]', fs.createReadStream('/C:/Users/***/img.jpg'));
data.append('meta[folder]', '');

var config = {
  method: 'post',
  url: '**/api/cockpit/addAssets?token=**',
  headers: { 
    'Authorization': 'Bearer **', 
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});