# How to ガイド - オブジェクトのアップロード
ここでは、ターゲットアプリケーションでオブジェクトをダウンロードするアクションの作成について説明します。一般には、POST
HTTP 要求メソッドを使用して、オブジェクトをダウンロードする要求を送信します。
# サンプルコネクター - Egnyte
{
title: 'My Egnyte connector',
# More connector code here
actions: {
upload_object: {
title: 'Upload file',
description: "Upload <span class='provider'>file</span> in <span class='provider'>Egnyte</span>",
help: 'Upload file to a selected folder in Egnyte. Use this action to upload file of size <b>less than 100 MB only</b>.',
input_fields: lambda do |object_definitions|
[
{
name: 'folder_path', label: 'Folder', control_type: 'tree',
tree_options: { selectable_folder: true },
pick_list: :folders,
optional: false,
hint: 'Select path to upload file.',
toggle_hint: 'Select folder',
toggle_field: {
name: 'folder_path',
type: 'string',
control_type: 'text', optional: false,
label: 'Folder path',
sticky: true,
toggle_hint: 'Use folder path',
hint: 'Provide complete path of a folder to upload. Example: <b>/Private/Sample</b>'
}
},
{
hint: 'Provide filename that you want to upload. Example: <b>Contacts.csv</b>',
name: 'file_name',
label: 'File name',
optional: false
},
{ name: 'file_content', optional: false }
]
end,
execute: lambda do |connection, input|
file_path = input['folder_path']&.gsub(/%2F/, '/')
post("/pubapi/v1/fs-content#{file_path}/#{input['file_name']}").
request_body(input['file_content'])
end,
output_fields: lambda do |object_definitions|
[
{ name: 'path' },
{ name: 'checksum' },
{ name: 'group_id' },
{ name: 'entry_id' }
]
end
}
# More connector code here
}
# ステップ1 - アクションのタイトル、サブタイトル、説明、ヘルプ
よいアクションを実行するための最初のステップでは、アクションが何をどのように実行するかを適切に伝え、ユーザーにさらなるサポートを提供します。そのために Workato では、アクションのタイトル、サブタイトル、説明を定義し、アクションのヒントを提供できるようにしています。簡単に言えば、タイトルはアクションのタイトルにし、サブタイトルにはアクションの詳細情報を指定します。したがってアクションの説明には、アクションが実行する内容について、および接続するアプリケーションに関する仕様と説明が含まれます。最後に、ヘルプセグメントでは、アクションをうまく機能させるために必要な追加情報をユーザーに提供します。
このステップの詳細については、当社の SDK リファレンスを参照してください。
# ステップ2 - 入力フィールドの定義
input_fields: lambda { |object_definitions|
[
{
name: 'folder_path', label: 'Folder', control_type: 'tree',
tree_options: { selectable_folder: true },
pick_list: :folders,
optional: false,
hint: 'Select path to upload file.',
toggle_hint: 'Select folder',
toggle_field: {
name: 'folder_path',
type: 'string',
control_type: 'text', optional: false,
label: 'Folder path',
sticky: true,
toggle_hint: 'Use folder path',
hint: 'Provide complete path of a folder to upload. Example: <b>/Private/Sample</b>'
}
},
{
hint: 'Provide filename that you want to upload. Example: <b>Contacts.csv</b>',
name: 'file_name',
label: 'File name',
optional: false
},
{ name: 'file_content', optional: false }
]
},
このコンポーネントは、オブジェクトのアップロードを試みるユーザーにどのフィールドを表示するかを Workato に指示します。たとえば、オブジェクトを Egnyte にアップロードする場合、ユーザーは、ファイルのアップロード先の folder_path
(フォルダーパス)、アップロードするファイルの file_name
(ファイル名)、およびアップロードされる file_content
(ファイルの内容) を入力する必要があります。
オブジェクトの定義
object_definitions
は引数として渡されることに注意してください。Workato では、コネクタービルダーが「object_definitions」キー内でオブジェクトを別々に定義できます。このキーは、オブジェクトの定義が非常に大きいか、オブジェクトの定義を動的に取得できる場合に使用されます。
この詳細については、当社の SDK リファレンスを参照してください。
# ステップ3 - execute キーの定義
execute キーでは、要求の送信先のエンドポイントと、どの HTTP 要求メソッドを使用するかを Workato に通知します。この例では、Post
メソッドを使用して要求を /pubapi/v1/fs-content#{file_path}/#{input['file_name']}
に送信します。要求には request_body(input['file_content'])
メソッドも付加します。
この GET アクションでは、まずユーザーが生成した folder_path
をフォーマットします。このためには、URL のエンコードされた値を実際に意図された文字に置き換えます。ここでは、%2F
を /
に置き換えます。その後、フォーマットされた file_path
を API エンドポイントに付加し、Workato、さらには Egnyte に、ファイルディレクトリ内のファイルをアップロードする場所を指示します。また、このためには、この URL に file_name
を付加し、アップロードするファイル名を指定します。
最後に、file_content
を要求の要求本体に付加します。
execute: lambda do |connection, input|
file_path = input['folder_path']&.gsub(/%2F/, '/')
post("/pubapi/v1/fs-content#{file_path}/#{input['file_name']}").
request_body(input['file_content'])
end,
# ステップ4 - 出力フィールドの定義
このセクションでは、トリガーの出力として表示するデータピルを示します。各データピルの name
属性は、execute
キーの出力のキーに一致します。
output_fields: lambda do |_object_definitions|
[
{ name: 'path' },
{ name: 'checksum' },
{ name: 'group_id' },
{ name: 'entry_id' }
]
end
オブジェクトの定義
object_definitions
は引数として渡されることに注意してください。Workato では、コネクタービルダーが「object_definitions」キー内でオブジェクトを別々に定義できます。このキーは、オブジェクトの定義が非常に大きいか、オブジェクトの定義を動的に取得できる場合に使用されます。
この詳細については、当社の SDK リファレンスを参照してください。
# ファイルのアップロードでの複合データ型の使用
API によっては、ファイルをアップロードするために複合データ型を使用する必要がある場合があります。複合データ型の要求を作成する方法については、こちらのガイドを参照してください。
Last updated: 2023/8/31 1:07:14