ファイルストレージ管理

ファイルの管理には2つのステップが必要です。

ファイル管理のための一時的なS3資格情報

インデックスの作成(インデクシング)パイプラインでファイルを管理するために必要な一時的な資格情報を生成するために、次のエンドポイントを使用してください。

リクエスト

KandaSearch REST APIの認証方法については、認証トークンの取得方法 を参照してください。

あなたの project-id は、kandasearch.com へログインし、対象のプロジェクトのオーバービューへ移動後、プロジェクトIDの横にあるコピーアイコンをクリックすることで取得できます。

KSでこのエンドポイントを使用するには、請求先情報 および お支払い方法情報 を登録している必要があります。

実行できる4つのアクションは次のとおりです:LISTDOWNLOADUPLOAD、および DELETE
ユーザーは、それぞれリクエストしたアクションを実行でき、LIST アクションはユーザーにデフォルトで提供されます。UPLOAD アクションは、管理者ユーザーにのみ利用可能です。

利用可能なdirectoryTypesAI のみであり、これは必須です。

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