ファイルストレージ管理
ファイルの管理には2つのステップが必要です。
ファイル管理のための一時的なS3資格情報
インデックスの作成(インデクシング)パイプラインでファイルを管理するために必要な一時的な資格情報を生成するために、次のエンドポイントを使用してください。
リクエスト
KandaSearch REST APIの認証方法については、認証トークンの取得方法 を参照してください。
あなたの project-id
は、kandasearch.com へログインし、対象のプロジェクトのオーバービューへ移動後、プロジェクトID
の横にあるコピーアイコンをクリックすることで取得できます。
KSでこのエンドポイントを使用するには、請求先情報 および お支払い方法情報 を登録している必要があります。
実行できる4つのアクションは次のとおりです:LIST
、DOWNLOAD
、UPLOAD
、および DELETE
。
ユーザーは、それぞれリクエストしたアクションを実行でき、LIST
アクションはユーザーにデフォルトで提供されます。UPLOAD
アクションは、管理者ユーザーにのみ利用可能です。
利用可能なdirectoryTypes
は AI
のみであり、これは必須です。
curl --location 'https://api.kandasearch.com/external/v1/projects/{project-id}/files/storage/credentials' \
--header 'Authorization: Bearer {Auth-Token}' \
--header 'Content-Type: application/json' \
--data '{
"actions": [
"DOWNLOAD",
"UPLOAD",
"DELETE"
],
"directoryTypes": [
"AI"
]
}'
レスポンス
HTTPレスポンスのステータスは常に 200
です。ただし、Auth-Token
が提供されない場合に限り、ステータスは 401
になります。status
キーは、すべてが正常に行われたか ("OK")、エラーがあったか ("ERROR") を決定します。エラーが発生した場合、"message" キーはエラーの原因を説明します。
OKレスポンス
{
"status": "OK",
"result": {
"projectId": "ef173abe-457b-4cbc-b96a-94ed9f618324",
"accessKeyId": "ASIARYRHK...",
"secretAccessKey": "Tp28sslq6...",
"sessionToken": "IQoJb3JpZ2luX2VjEL3...",
"expiration": "2024-04-29T13:34:53Z",
"actions": [
"DELETE",
"DOWNLOAD",
"UPLOAD"
],
"directoryTypes": [
"AI"
]
},
"error": null
}
デフォルトでは、有効期限はリクエストから60分後です。日付はUTCで表示されます。
エラーの例
{
"status": "ERROR",
"result": null,
"error": {
"message": "You are not a member of this project.",
"origin": "UIB"
}
}
S3を使用したファイル管理
セットアップ
要件:
ターミナルから資格情報を使用するには、レスポンスからの値を使用して3つの環境変数を設定する必要があります。その際、有効期限に注意してください。
export AWS_ACCESS_KEY_ID="ASIARYRHK..."
export AWS_SECRET_ACCESS_KEY="IQoJb3JpZ2luX2VjEL3..."
export AWS_SESSION_TOKEN="IQoJb3JpZ2luX2VjEL3..."
アクション
すべてのアクションには、次のパスが必要です。
s3://kandasearch-prod-backups/{project-id}/user/ai/
ディレクトリ内のオブジェクトを一覧表示する
aws s3 ls s3://kandasearch-prod-backups/{project-id}/user/ai/
オブジェクトをアップロードする
aws s3 cp foo.txt s3://kandasearch-prod-backups/{project-id}/user/ai/foo.txt
オブジェクトをダウンロードする
aws s3 cp s3://kandasearch-prod-backups/{project-id}/user/ai/foo.json ./foo.json
オブジェクトを他のディレクトリへ移動する
aws s3 mv s3://kandasearch-prod-backups/{project-id}/user/ai/foo.txt s3://kandasearch-prod-backups/{project-id}/user/ai/new-folder/foo.txt
オブジェクトの名前を変更する
aws s3 mv s3://kandasearch-prod-backups/{project-id}/user/ai/foo.txt s3://kandasearch-prod-backups/{project-id}/user/ai/foo-new-name.txt
オブジェクトやディレクトリを削除する
オブジェクト
aws s3 rm s3://kandasearch-prod-backups/{project-id}/user/ai/foo.txt
ディレクトリ
aws s3 rm s3://kandasearch-prod-backups/{project-id}/user/ai/ --recursive