從外掛程式上傳檔案到外部

information

本頁面使用機器翻譯而成。
機器翻譯免責聲明 (External link)

目錄

從外掛程式上傳檔案到外部

將檔案從外掛程式上傳到外部服務。
此API允許您繞過跨域限制並向外部服務發送請求。

如果要使用要保密的資訊(例如身份驗證資訊)執行外部API,請在執行API之前提前將必要的資訊存儲在外掛程式中。
有關在外掛程式中存儲和獲取資訊的API,請參閱以下頁面:

函數

電腦版/行動裝置版

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

參數

參數 類型 必須 說明
pluginId 字串 必須 執行API的外掛程式的ID
URL 字串 必須 請求URL
method 字串 必須 HTTP方法
指定以下值之一:
  • POST
  • PUT
headers 物件 必須 請求標頭
如果不指定任何內容,請指定 {}
data 物件 必須 請求正文
data.format 字串 必須 將資料上傳到代理目標的格式
只能指定「RAW」。
data.value Blob(包括文件) 必須 上傳圖片
要上傳的文件中的數據
可指定的最大大小為200MB。
successCallback 函數 可省略 請求完成後要執行的函數
在函數的引數中傳遞以下三條資訊:
  • 第一個引數:回應正文(字串)
  • 第二個引數:狀態代碼(數值)
  • 第三個引數:回應標頭(物件)
如果省略,則返回Promise物件,將解析為包含上述回應正文、狀態代碼和響應標頭的陣列。
failureCallback 函數 可省略 請求失敗時要執行的函數
API執行後的回應正文(字串)作為參數傳遞給函數。
如果省略,返回`物件,並在執行的API的回應正文(字串)中廢棄。

返回值

如果指定successCallback,則沒有返回值。
如果省略successCallback參數,返回Promise物件。

可使用的畫面

電腦版
  • 記錄清單畫面
  • 記錄詳情畫面
  • 新增記錄畫面
  • 編輯記錄畫面
  • 記錄列印畫面
  • 圖表畫面
行動裝置版
  • 記錄清單畫面
  • 記錄詳情畫面
  • 新增記錄畫面
  • 編輯記錄畫面

示例代碼

如何使用回調進行編寫
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const data = {
  format: 'RAW',
  value: '<some blob object>'
};

kintone.plugin.app.proxy.upload('mjjfipoklghomcgafnajfibfgllhpocm', 'https://sample.com', 'POST', {}, data, (body, status, headers) => {
  // success
  console.log(status, JSON.parse(body), headers);
}, (error) => {
  // error
  console.log(error); // 顯示代理API的回應內文(字串)
});
使用Promise物件的編寫方法
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// 如何使用kintone.Promise物件編寫
const data = {
  format: 'RAW',
  value: '<some blob object>'
};

kintone.plugin.app.proxy.upload('mjjfipoklghomcgafnajfibfgllhpocm', 'https://sample.com', 'POST', {}, data).then((args) => {
  // success
  /* args[0] -> body(字串)
   *args[1]  -> status(數值)
   *args[2] -> headers(物件)
   */
  console.log(args[1], JSON.parse(args[0]), args[2]);
}, (error) => {
  // error
  console.log(error); // 顯示代理API的回應內文(字串)
});

注意事項

  • 如果指定的伺服器url不存在,則返回狀態代碼為「503」(DNS Cache Missing)的錯誤。
  • 如果設置了IP位址限制,要使用該JavaScript API為同一域的其他應用執行kintone REST API,則必須允許kintone的IP位址。
    有關詳細的IP地址,請參閱以下頁面。
    cybozu.com使用的域和IP位址 (External link)
    但是,從安全角度來看,不建議這樣做,因為它允許通過執行外部API的API從所有kintone環境自由訪問。
  • 即使您使用此API執行外部API,也不會自動發出應由執行的API目標發出的cookie。
  • 如果HTTP的方法指定為POST或PUT,則會自動追「Content-Length」和「Transfer-Encoding」標頭。
    如果在請求裡指定,則會出現錯誤。

限制事項

  • 以下是對執行的外部API回應的限制:
    • 響應標頭的最大為100行,每行的最大長度為8,180位元組。
    • 回應正文的上限為10MB。如果超過限制,則會發生錯誤。
    • 回應正文僅支援字串。無法獲取二進位數據,例如圖像。
  • 不能使用自證書與伺服器通信。
  • 目標瀏覽器基於以下頁面的內容。
    操作環境中的Web瀏覽器 (External link)