Forum Stats

  • 3,827,520 Users
  • 2,260,789 Discussions
  • 7,897,287 Comments

Discussions

Oracle Cloud Infrastructure : CLIツールでオブジェクトストレージを操作してみよう

Kenichi Sonoda-Oracle
Kenichi Sonoda-Oracle Member Posts: 4 Employee
edited Feb 22, 2019 3:24AM in Social Groups

Oracle Cloud Infrastructure では各種サービスのプロビジョニングやオペレーションのためにCLIツール(ocicli)が使えます。ちょうどAWSさんのAWS CLIやs3cmdのようなものです。本記事ではこのocicliを使ってオブジェクトストレージに対してどようような操作ができるのか、便利そうなオペレーションにフォーカスしてクイックにご紹介したいと思います。可能なオペレーションの全てを確認したい場合はマニュアルの「Managing Buckets」「Managing Objects」をご参照ください。

●サブディレクトリ含む指定のディレクトリ配下のファイルを全てアップロード

こんな感じのディレクトリ構造で、dir1配下全てをアップロードしたい場合

[[email protected] opc]# ls -R dir1

dir1:

aaa  bbb  dir2

dir1/dir2:

ccc  ddd  dir3

dir1/dir2/dir3:

eee  fff

下記のようにbulk-uploadオプションでdir1配下をごっそりアップロードできます。

[[email protected] opc]# oci os object bulk-upload -ns <テナント名> -bn <バケット名> --src-dir dir1 --no-multipart

Uploaded dir2/dir3/eee  [####################################]  100%

{

  "skipped-objects": [],

  "upload-failures": {},

  "uploaded-objects": {

    "aaa": {

      "etag": "6FAD8A68CDF52497E053425EC10AACB9",

      "last-modified": "Thu, 28 Jun 2018 05:04:09 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "bbb": {

      "etag": "6FAD5787673614C6E053425EC10A381F",

      "last-modified": "Thu, 28 Jun 2018 05:04:09 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "dir2/ccc": {

      "etag": "6FAD86A8317F2276E053425EC10A7B22",

      "last-modified": "Thu, 28 Jun 2018 05:04:09 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "dir2/ddd": {

      "etag": "6FADA12415DE3C45E053425EC10A2981",

      "last-modified": "Thu, 28 Jun 2018 05:04:09 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "dir2/dir3/eee": {

      "etag": "6FAD50BC014D0FD0E053425EC10A1D55",

      "last-modified": "Thu, 28 Jun 2018 05:04:09 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "dir2/dir3/fff": {

      "etag": "6FAD5787673714C6E053425EC10A381F",

      "last-modified": "Thu, 28 Jun 2018 05:04:09 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    }

  }

}

当然、ダウンロードもごっそりできますが、普通にやると面白くないので上記ディレクトリ構造のdir2だけをダウンロードしてみます。

[[email protected] opc]# oci os object bulk-download -ns gse00014523 -bn ks_bucket01 --download-dir /tmp --prefix dir2/ --delimiter /

Downloaded dir2/ddd  [####################################]  100%

{

  "download-failures": {},

  "skipped-objects": []

}

[[email protected] opc]# ls -R /tmp

/tmp:

dir2

/tmp/dir2:

ccc  ddd

dir2配下のオブジェクトのみがダウンロードできました。

アップロード時にオブジェクト名にプリフィックスを追加することもできます。下記の例では全てのオブジェクトの名前に「test_」というプリフィクスをつけてみました。

[[email protected] opc]# oci os object bulk-upload -ns gse00014523 -bn ks_bucket01 --src-dir dir1 --object-prefix test_ --no-multipart

Uploaded test_dir2/dir3/fff  [####################################]  100%

{

  "skipped-objects": [],

  "upload-failures": {},

  "uploaded-objects": {

    "test_aaa": {

      "etag": "6FAE29A61734B7A9E053425EC10A1C5D",

      "last-modified": "Thu, 28 Jun 2018 05:53:49 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "test_bbb": {

      "etag": "6FAD8A76AF47249BE053425EC10A4E2B",

      "last-modified": "Thu, 28 Jun 2018 05:53:49 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "test_dir2/ccc": {

      "etag": "6FAE0BB6DA829DC8E053425EC10A84A8",

      "last-modified": "Thu, 28 Jun 2018 05:53:49 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "test_dir2/ddd": {

      "etag": "6FAD9AD463842E52E053425EC10AFC1B",

      "last-modified": "Thu, 28 Jun 2018 05:53:49 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "test_dir2/dir3/eee": {

      "etag": "6FAE29A61735B7A9E053425EC10A1C5D",

      "last-modified": "Thu, 28 Jun 2018 05:53:49 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    },

    "test_dir2/dir3/fff": {

      "etag": "6FAE2AE728AABA2AE053425EC10ABFFF",

      "last-modified": "Thu, 28 Jun 2018 05:53:49 GMT",

      "opc-content-md5": "1B2M2Y8AsgTpgAmY7PhCfg=="

    }

  }

}

Tagged: