注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
公開アプリケーション経由でのデータアップロード機能は、クエリを介してセキュアアップロードエンドポイントが利用可能である必要があります。これは、公開アプリケーションを作成し、新しいクエリを作成することでテストできます。セキュアアップロードがソースとして利用できない場合は、Palantir の担当者にサポートを依頼してください。
公開アプリケーションは、ユーザーが Foundry にデータをアップロードできるように設定できます。データをアップロードするユーザーは、Foundry へのアクセス権限が必要ありません。ただし、アップロードされたデータにアクセスできるのは、適切なリソース権限を持つ Foundry ユーザーだけです。
公開アプリケーションでデータアップロードを設定するには、以下の手順に従ってください。
選択したプロジェクトまたはフォルダーに新しいデータセットリソースを作成します。
公開された Slate アプリケーションで、セキュアアップロードソースを元にした新しいクエリを作成します。まず、Test の隣にあるドロップダウンにあるチェックボックスをオンにして、クエリを手動実行のみに設定します。Available サービスから、Channel Service を選択し、エンドポイントのドロップダウンから Put channel を選択します。
セキュアアップロードがソースとして利用できない場合は、Palantir のサポートに連絡してください。
channelId
には、チャンネルの一意の名前(例: slate-app-name-data-upload
)を入力します。channelId
にはスペースを含めないでください。リクエストボディには、以前に作成した空のデータセットの RID が必要です。データセットの RID は、データセットの URL から取得できます(例: ri.foundry.main.dataset.1a2bcd34-5678-90e1-fa23-bc456d7e8f90
)。
リクエストのボディに以下の JSON を入力してください。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13
{ "configuration": { "dataset": "<ここにあなたのデータセットのridを入力してください>", // 最大ブロブサイズ(個々のブロブサイズのオプションの制限(バイト単位)) "maxBlobSize": <任意のサイズ制限(バイト単位)>, "options": { // タイプはjsonであることを指定 "type": "json", // jsonオプションを指定。詳細はここに記入 "json": {} } } }
Test を選択します。レスポンスは、フィールドに入力したものと一致する channelId
を返します。 channelId
を保存しておいてください。次のステップで必要となります。
このクエリは、データをアップロードするためのユーザーが再度必要とすることはありません。ただし、より多くのチャンネルを作成したい場合は例外です。クエリは安全に削除できます。
チャンネルを作成した後、トークンを作成する必要があります。このトークンは、セキュアなアップロードクエリを提出し、データセットにデータをアップロードするために必要です。ソースとして secure-upload を持つ新しいクエリを作成します。前と同様に、クエリは手動でのみ実行されるように設定します。利用可能なサービスから、Token Service を選択し、Endpoints ドロップダウンから Create Token を選択します。
リクエストのボディは以下の形式となります:
Copied!1 2 3 4 5 6 7 8 9 10 11
{ "type": "blobUploadToDataset", "blobUploadToDataset": { // ステップ2で定義されたchannelIdを設定 "channel": "<channelId defined in step 2>", // ISO-8601形式での有効期限 (例: 2021-06-30T00:00:00Z) "expiry":"<expiration date in ISO-8601: e.g. 2021-06-30T00:00:00Z>", // カウント数 "count": 1 } }
最大有効期限は、ユーザーの Foundry インスタンスのセキュアアップロードの設定に依存します。
テスト を選択してクエリを送信します。レスポンスには、トークンが含まれています。このトークンは一度しか表示されないので保存しておく必要があります。必要であれば、クエリを再実行して別のトークンを取得します。このクエリは、ユーザーがデータをアップロードするために再度必要となることはありません。ただし、より多くのトークンを作成したい場合には必要です。クエリは安全に削除できます。
ユーザーがクエリを送信できるようにするために、もう1つのクエリを作成する必要があります:
すべてのフィールドには値を割り当てる必要があります。値は文字列である必要があります。jsonStringify ハンドルバーヘルパーを使用するか、関数を使用して値を文字列にキャストできます。
リクエスト本文の例を以下に示します:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
{ "path": "blobs", "method": "POST", "extractors": { "result": "$" }, "headers": { "authorization": "Bearer <token_from_step_3>" }, "bodyJson": { "content": { // ここに好きな形のJSONデータを入力してください // 例: "field1": "value1", "field2": {{jsonStringify w_input1.text}}, "field3": [ "item1", {{jsonStringify w_input2.text}}, {{jsonStringify f_function1}} ] } } }
このクエリが実行されると、データは _buffer_v2
という接尾辞が追加されたデータセットに格納され、元のデータセットと同じ場所に位置します。データは、このステップで定義された通りの形状になります。例えば、上記の例からのクエリの本体を持つクエリは、「content」行に以下のデータエントリを結果として生じます(データセットには他の行に追加のメタデータが含まれます):
{
content: {
"field1": "value1", // フィールド1の値
"field2": "<<value of jsonStringify w_input1.text>>", // w_input1.textのjsonStringifyの値
"field3": ["item1", "<<value of jsonStringify w_input2.text>>", "<<value of jsonStringify f_function1>>"] // フィールド3の配列要素
}
}
データセットへの新しいエントリのアップロードを停止するには、アプリケーションの非公開化と、最後のクエリで認証ヘッダとして使用されているトークンの削除を行う必要があります。
非公開化は、認証されていないユーザーからアプリケーションを隠しますが、認証されていないユーザーは依然として public secure-upload データソースを呼び出すことができます。トークンを削除することは、アプリケーションのセキュリティを維持するために重要です。
生成されたトークンは、復元オプションがないため、安全な場所に保管してください。
トークンを削除するには、次の手順を実行します:
1abcdefgha2bcdef3ghabcdefg
)。