Proxy File Upload

Proxy File Upload - kintone.proxy.upload()

Upload a file to outside of Kintone.

Function

kintone.proxy.upload(url, method, headers, data, successCallback, failureCallback)

Parameters

PARAMETER VALUE REQUIRED DESCRIPTION
url String Yes The request URL.
method String Yes The HTTP method. Specify one of the following: POST / PUT.
headers Object Yes Specify the request header as an object. To ignore this parameter, input {}.
Sample: { 'Content-Type': 'application/json' }
data Object Yes The data that will be sent in the request.
{ 'format': // format to be uploaded to the external service, 'value': // data to be uploaded}
For format, you can only specify the string "RAW".
For value, specify the value of the Blob type (including File type). The maximum size is 200MB.
successCallback Function Optional The callback function that will run when the request to the external service has finished. It will receive the response body (string), the status code (number) and the response header (object) as parameters from the external service.
If this parameter is ignored, a kintone.Promise object will be returned that can be fulfilled with an array containing a Response body (string), Status code (number) and Response header (object).
failureCallback Function Optional The callback function that will run when the API request to the external service fails. It will receive the response body (string) as the parameter from the external service.
If this parameter is ignored, a kintone.Promise object will be returned that can be rejected with the response body (string) from this API.

Response

A kintone.Promise object will be returned if the successCallback or failureCallback parameters are ignored. Otherwise, there will be no response.

Sample Request

1
2
3
4
5
kintone.proxy.upload('https://*****.***.net', 'POST', {}, {'format': 'RAW', 'value': SOME_BLOB_OBJECT}, function(body, status, headers) {
  console.log(status, JSON.parse(body), headers);
}, function(error) {
  console.log(error); // Display the response body (string) from the proxy API
});

Sample Request using Promises

1
2
3
4
5
6
7
8
9
kintone.proxy.upload('https://*****.***.net', 'POST', {}, {'format': 'RAW', 'value': SOME_BLOB_OBJECT}).then(function(args) {
  /*  args[0] -> body(string)
   *  args[1] -> status(number)
   *  args[2] -> headers(object)
   */
  console.log(args[1], JSON.parse(args[0]), args[2]);
}, function(error) {
  console.log(error); // Display the response body (string) from the proxy API
});

Limitations

  • This API can be used on both Desktops and Smartphones.
  • The service on the other end of the proxy will not automatically issue cookies.
  • The maximum lines of the response header from the other end of the proxy is 100 lines, and the maximum size for each line is 8192 bytes.
  • The maximum size of the response body from the other end of the proxy is 10MB.
  • Errors will occur if lines or sizes go over the maximum.
  • Compatible browsers are: Latest versions of Mozilla Firefox, Google Chrome, Safari, iOS Safari and Android Chrome.
  • Any kind of Content-type can be used.