upload

説明

データレークへファイルをアップロードします。 ディレクトリを指定することでディレクトリに含まれるファイルを一括でアップロードすることができます。

概要

$ abeja datalake upload [--help]
Usage: abeja datalake upload [OPTIONS] [PATHS]...

  Upload file or directory

Options:
  -c, --channel_id TEXT           Channel identifier  [required]
  --dry-run, --dry_run            Dry run, only shows upload candidate files
  -r, --recursive                 Recursively upload directory
  -m, --metadata, --meta-data, --meta_data METADATASTRING
                                  Metadata to add all upload files
  -l, --file-list, --file_list PATH
                                  JSON file which list files and metadata
  --retry [ask|no|force]          Retry to upload files if there are files
                                  couldn't be uploaded (default: 'ask')
  --save-result FILENAME          Save uploaded file info as JSON at the
                                  specified path.
  --skip-duplicate-files          Don't upload file if the file whose name is
                                  same already exists in the channel.
  --help                          Show this message and exit.

引数

PATH

アップロードするファイルまたはディレクトリへの相対パスまたは絶対パスを指定します。複数指定可能です。

オプション

--channel_id <id>

アップロード先のチャンネルの ID を指定します。

--dry_run

コマンドによりアップロードされるファイルの一覧を表示します。このオプションを指定した場合、実際のアップロードは行われません。

--recursive

アップロード対象に含まれるディレクトリを再帰的に探索する場合に指定します。

--metadata <name>:<value>

アップロードする全てのファイルに対しメタデータを付与します。メタデータは複数指定することが可能です。指定方法は <name>:<value> の形式で指定します。たとえば、以下のように指定します。

--metadata label:cat

複数のメタデータを指定する場合は、以下のように --metadata オプションを複数指定してください。

--metadata label:cat --metadata category:animal

--file-list <path>

アップロード対象となるファイルの一覧を JSON 形式の設定ファイルで指定します。設定ファイルの中身は、ひとつの配列を含み、配列の各要素は以下のプロパティを含みます。

  • file - (必須) アップロード対象となるファイルへの相対パスまたは絶対パスの文字列
  • metadata - ファイルに設定するメタデータを指定するためのオブジェクト

たとえば、以下の設定ファイルは test1.txt, test2.txt, test3.txt の 3 つのファイルを指定しています。

[{ "file": "test1.txt" }, { "file": "test2.txt" }, { "file": "test3.txt" }]

以下のように、異なるメタデータをそれぞれのファイルに指定できます。

[
  {
    "file": "images/sample1.jpg",
    "metadata": {
      "weight": 50,
      "size": 150,
      "kind": "W5"
    }
  },
  {
    "file": "images/sample2.jpg",
    "metadata": {
      "weight": 45,
      "size": 300,
      "kind": "E3"
    }
  }
]

--retry <value>

失敗した場合のリトライの有無を指定します。 値は ask, no, force のいずれかを取り、デフォルトでは ask が設定されます。

--save-result <value>

アップロードしたファイルの情報を保存する場合にパスを指定します。 ファイルの情報は json として以下の形式で保存されます。

[
  {
    "file": "/path/to/filename.jpg",
    "file_id": "20180101T000000-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "metadata": {
      "x-abeja-meta-filename": "filename.jpg",
      "x-abeja-meta-foo": "2",
      "x-abeja-sys-meta-organizationid": "1234567890123"
    }
  },
  ...
]

--skip-duplicate-files

出力ディレクトリパスに、名前が同じファイルが既に存在する場合、ファイルをアップロードしないオプションです。

ファイルのデータレイクへのアップロード

指定されたファイルを、ID が 1234567890123 のチャンネルにアップロードします。また、sample-key というメタデータに sample-value を設定します。

コマンド:

$ abeja datalake upload ./upload_file.txt --channel_id 1234567890123 --metadata sample-key:sample-value

ディレクトリのデータレイクへの一括アップロード

./upload_dir ディレクトリ以下のすべてのファイルを、ID が 1234567890123 のチャンネルにアップロードします。また、sample-key というメタデータに sample-value を設定します。

コマンド:

$ abeja datalake upload ./upload_dir --channel_id 1234567890123 --metadata sample-key:sample-value --recursive