CLIの使用

このトピックでは、CLIを使用して、Oracle Cloud Infrastructureにアクセスし、サービス関連のタスクを実行する方法について説明します。このトピックでは、CLIが構成されており、すぐに使用できる状態であることを想定しています。

ヒント

CLIには、コマンドの自動完了とパラメータ情報および提案を提供するインタラクティブ・モードがあります。詳細は、インタラクティブ・モードの使用を参照してください。

さらに調べる場合、コマンドライン・インタフェースの開始では、CLIを使用してインスタンスを起動する方法が順を追って詳しく説明されます。

コマンドライン構文

ほとんどのコマンドでは、サービスの後にリソース・タイプとアクションを指定する必要があります。基本的なコマンドライン構文は次のとおりです:

oci <service> <type> <action> <options>

たとえば、この構文は次のように適用されています:

  • computeは<service>
  • instanceはリソースの<type>
  • launchは<action>
  • その他のコマンド文字列は<options>。

インスタンスを起動する次のコマンドは、一般的なコマンドライン構造を示しています。

oci compute instance launch --availability-domain "EMIr:PHX-AD-1" -c ocid1.compartment.oc1..aaaaaaaal3gzijdlieqeyg35nz5zxil26astxxhqol2pgeyqdrggnx7jnhwa --shape "VM.Standard1.1"   --display-name "Instance 1 for sandbox" --image-id ocid1.image.oc1.phx.aaaaaaaaqutj4qjxihpl4mboabsa27mrpusygv6gurp47kat5z7vljmq3puq --subnet-id  ocid1.subnet.oc1.phx.aaaaaaaaypsr25bzjmjyn6xwgkcrgxd3dbhiha6lodzus3gafscirbhj5bpa

前述の例で、--display-nameオプションを使用して、インスタンスのわかりやすい名前を指定できます。機密情報の入力は避けてください。

基本的な例

この項では、CLIを使用した基本的な操作の例について説明します。

ノート

OCIDに対する環境変数の使用

一部のCLIの例では、次のようにOCIDの環境変数を使用しています:

  • $T: テナンシOCID
  • $C: コンパートメントOCID

例:

T=ocid1.tenancy.oc1..aaaaaaaaba3pv6wm2ytdrwrx32uzr4h25vkcr4jqae5f15p2b2qstifsfdsq
C=ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga

ネームスペースを取得するには、次のコマンドを実行します。

oci os ns get

コンパートメントをリスト表示するには、次のコマンドを実行します。

oci iam compartment list -c $T

バケットのリストを取得するには、次のコマンドを実行します。

oci os bucket list -ns mynamespace --compartment-id $C

ユーザーをリスト表示し、出力を制限するには、次のコマンドを実行します。

oci iam user list --compartment-id $T --limit 5

グループにユーザーを追加するには、次のコマンドを実行します。

oci iam group add-user --user-id ocid1.user.oc1..aaabcaaaxkkhhtmghvqqq7rgvzwuj3drwmtlsgz6sbfo7y4uc5sprzli377q --group-id ocid1.group.oc1..aaabcaaa66plootq6uuwwxhfdw2lsdqtgeb6l4pjsv5eeuenxrauujj35b7b

コマンドによるヘルプの取得

どのコマンドについても、--help-hまたは-?を使用してヘルプを取得できます。例:

oci --help
oci os bucket -h
oci os bucket create -?

CLIのすべてのヘルプの確認

コマンドラインのヘルプを参照してください。

インストールされたCLIバージョンの確認

インストールされたCLIのバージョンを取得するには、次のコマンドを実行します。

oci --version

インスタンス・プリンシパルを使用した認証

インスタンス・プリンシパルは、インスタンスが、サービス・リソースに対してアクションを実行できる認可済アクター(すなわちプリンシパル)になることができるIAMサービス機能です。各コンピュート・インスタンスは、自身のアイデンティティを持ち、追加された証明書を使用して認証を行います。これらの証明書は自動的に作成され、インスタンスに割り当てられてローテーションされ、ホストに資格証明を配布してローテーションする必要がなくなります。

CLIからインスタンス・プリンシパル認可を有効にするには、コマンドに対して認可オプション(--auth)を設定できます。

例:

 oci os ns get --auth instance_principal

インスタンス・プリンシパル認可は、OCI_CLI_AUTH環境変数を設定して有効にすることも可能です。

例:
OCI_CLI_AUTH=instance_principal
ノート

--authパラメータに設定された値は、環境変数より優先されます。

インスタンス・プリンシパルの詳細は、インスタンスからのサービスのコールを参照してください。

プロキシ・サーバーの使用

CLIでは、HTTPリクエストを使用してOracle Cloud Infrastructureサービスをコールします。環境内で送信HTTPリクエストにプロキシ・サーバーを使用する必要がある場合は、次のいずれかの方法を使用できます:

コマンドラインで--proxyパラメータを使用

CLIコマンドをコールするときに--proxyパラメータを指定すると、コマンドラインでプロキシ・サーバーを指定できます。

例:

oci os ns get --proxy https://<add your proxy URL here>/

CLI構成ファイルへのプロキシ・エントリの追加

詳細は、「プロキシ・サーバーの指定」を参照してください。

環境変数の使用

プロキシ・サーバーを指すには、HTTP_PROXYおよびHTTPS_PROXY環境変数を設定します。

たとえば、LINUXでは次のようになります:
https_proxy=https://<add your proxy URL here>/
http_proxy=http://<add your proxy URL here>/
Windowsでは、PowerShellを使用します:
$Env:http_proxy = "http://<add your proxy URL here>/"

CLIコマンドでの日付と時間の使用

CLIでは、次の一般的な日付書式がサポートされています。

  • UTC (ミリ秒)

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T20:30:00.123Z
  • UTC (ミリ秒なし)

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T20:30:00Z
  • UTC (分)

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T20:30Z
  • タイムゾーン(ミリ秒)

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T12:30:00.456-08:00
  • タイムゾーン(ミリ秒なし)

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T12:30:00-08:00
  • タイムゾーンとオフセット(分)

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T12:35-08:00
  • 日付のみ(その日のUTC深夜0時に取得)

    Format: YYYY-MM-DD, Example: 2017-09-15
  • エポック秒

    Example: 1412195400
ノート

日時書式では、Tを空白で置換できます。たとえば、"2017-09-15 20:30:00.123Z"2017-09-15T20:30:00.123Zのどちらも使用できます。(Tを含めない場合は、値を引用符で囲む必要があることに注意してください。)また、タイムゾーンにコロンを含めても含めなくてもかまいません。+10:00+1000のどちらも使用できます。

CLIの入力および出力の管理

CLIには、コマンドの入力と出力を管理するいくつかのオプションがあります。

複雑な入力を渡す

複数の値を含む配列やオブジェクトなどの複雑な入力はJSONフォーマットで渡されます。これは、コマンドラインで文字列として、またはファイルとして、指定できます。あるいは、コマンドラインの文字列とファイルの両方として渡すこともできます。

MacOS、LinuxまたはUnix

次のコマンドは、--metadataオブジェクトの2つの値を渡す方法を示しています。

oci os bucket create -ns mynamespace --name mybucket --metadata '{"key1":"value1","key2":"value2"}' --compartment-id ocid1.compartment.oc1..<example>

Windows

Windowsで、複雑な入力をCLIにJSON文字列として渡すには、ブロック全体を二重引用符で囲む必要があります。ブロックの内側では、キーと値文字列それぞれの二重引用符をバックスラッシュ(\)でエスケープする必要があります。

次のコマンドは、Windowsで--metadataオブジェクトの2つの値を渡す方法を示しています。

oci os bucket create -ns mynamespace --name mybucket --metadata "{\"key1\":\"value1\",\"key2\":\"value2\"}" --compartment-id ocid1.compartment.oc1..<example>
ノート

JSONエラー

エラー・メッセージ「パラメータ'<PARAMETER NAME>'はJSONフォーマットである必要があります。」は、「PARAMETER NAME」という名前のパラメータに渡された値が有効なJSONではないことを意味します。通常、このエラーは、JSON文字列が正しくエスケープされないことによって発生します。

JSON文字列の使用の詳細は、JSONの拡張オプションを参照してください

出力を表としてフォーマット

デフォルトでは、コマンドに対するすべての応答はJSONフォーマットで返されます。たとえば、リージョンのリストを取得するコマンドを発行すると、次のような応答が返されます。

{
  "data": [
    {
      "key": "FRA",
      "name": "eu-frankfurt-1"
    },
    {
      "key": "IAD",
      "name": "us-ashburn-1"
    },
    {
      "key": "ICN",
      "name": "ap-seoul-1"
    },
    {
      "key": "PHX",
      "name": "us-phoenix-1"
    },
    {
      "key": "LHR",
      "name": "uk-london-1"
    },
    {
      "key": "NRT",
      "name": "ap-tokyo-1"
    },			
    {
      "key": "YYZ",
      "name": "ca-toronto-1"
    }				
  ]
}

場合によっては、読みやすいかどうかが問題になりますが、これは応答を表としてフォーマットすることで簡単に解決できます。コマンドの応答を表フォーマットにするには、次のコマンドを実行します。

oci iam region list --output table

次のリージョン・リストのサンプルは、2列の表として返されます。


+-----+----------------+
| key | name           |
+-----+----------------+
| FRA | eu-frankfurt-1 |
| IAD | us-ashburn-1   |
| ICN | ap-seoul-1     |
| PHX | us-phoenix-1   |
| NRT | ap-tokyo-1     |				
| LHR | uk-london-1    |
| YYZ | ca-toronto-1   |  
+-----+----------------+

問合せの使用

JSONの--queryオプションを使用して出力をフィルタリングできます。このオプションでは、JSONのJMESPath問合せ言語を使用します。

大量の出力を処理する場合はフィルタリングが非常に便利です。たとえば、次のコマンドはすべてのコンパートメントのリストを返します:

oci iam compartment list --all

このコマンドは多くの情報を返します。返されるフィールドの一部には、compartment-id、name、lifecycle-stateおよびdefined-tagsが含まれます。

表示するフィールドの選択

配列の名前および1つ以上のフィールドの名前を指定して(カンマ区切り配列として渡されます)、必要なフィールドのみを選択できます:

<name of the array>[].[<the name of the field>]
ノート

  • フィールド名は大/小文字が区別されます。JSONオブジェクトで指定されているとおりにフィールドの名前を指定します。
  • 存在しないフィールド名が指定されている場合、問合せの出力にはnullが含まれます。
  • フィールド名に特殊文字またはスペースが含まれている場合は、エスケープされた二重引用符でフィールド名を囲みます(bashの場合は\"、PowerShellの場合は\`")。
たとえば、コンパートメントの名前とライフサイクル状態のみを返すには:
oci iam compartment list --all --query "data[].[name, \"lifecycle-state\"]"
これによって、次のような出力が返されます:
[ 
  [
    "ATestCompartment",
    "ACTIVE"
  ],
  
  [
    "blocktest",
    "ACTIVE"
  ],
  [
    "ZestyTest",
    "ACTIVE"
  ]
]
カスタマイズされたフィールド名を持つオブジェクトとして情報を取得することもできます:
<name of the array>[].{<your custom name>:<the name of the field>}
例:
oci iam compartment list --all --query "data[].{Name:name, \"LifecycleState\":\"lifecycle-state\"}"
これによって、次のような出力が返されます:

[
  {
    "LifecycleState": "ACTIVE",
    "Name": "ATestCompartment"
  },
  {
    "LifecycleState": "ACTIVE",
    "Name": "blocktest"
  },
  {
    "LifecycleState": "ACTIVE",
    "Name": "ZestyTest"
  }
]

検索条件の指定

返される情報に対して検索条件を指定できます。たとえば、blocktestという名前のコンパートメントのみを返すには:
oci iam compartment list --all --query "data[?name=='blocktest']"
これによって、次のような情報が返されます:
[
  {
    "compartment-id": "ocid1.tenancy.oc1..<example_value>",
    "defined-tags": {
      "MySpecialTag": {
        "Phonebook": "software-development-kit"
      }
    },
    "description": "Compartment used by integration tests. 10000",
    "freeform-tags": {},
    "id": "ocid1.compartment.oc1..<example>",
    "inactive-status": null,
    "is-accessible": null,
    "lifecycle-state": "ACTIVE",
    "name": "blocktest",
    "time-created": "2018-06-19T17:08:46.059000+00:00"
  }
]
複数の検索条件を指定できます。次の例では、タグMySpecialTagを持つ2019年より前に作成されたコンパートメントの名前およびライフサイクル・ステータスを取得します:
oci iam compartment list --all --query "data[?\"time-created\"<'2019'&&\"defined-tags\".MySpecialTag!=null].[name, \"lifecycle-state\"]"
このコマンドによって、次のような出力が返されます:
[
  [
    "blocktest",
    "ACTIVE"
  ]
]

JSONのJMESPath問合せ言語の詳細は、JMESPathを参照してください。

JSONの拡張オプション

コマンド・オプションおよびコマンドについて正しいJSONフォーマットを取得できます。

  • コマンド・オプションの場合、--generate-param-json-inputを使用して、JSONを取得するコマンド・オプションを指定します。セキュリティ・ルールを作成または更新するためのJSONを生成するには、次のコマンドを実行します。

    oci network security-list create --generate-param-json-input ingress-security-rules
  • コマンド全体の場合、--generate-full-command-json-inputを使用します。インスタンスを起動するためのJSONを生成するには、次のコマンドを実行します。

    oci compute instance launch --generate-full-command-json-input

JSON入力の優先順位

CLIでは、コマンドライン上の引数とファイル入力を組み合せることができます。ただし、同じ値がファイルとコマンドラインで指定された場合は、コマンドラインが優先されます。

複雑な入力でのJSONファイルの使用

ファイルをコマンドラインで参照することで、複雑な入力をファイルから渡すことができます。Windowsユーザーの場合は、こうすると、JSONテキストをエスケープする必要がなくなります。ファイルのパスは、file://接頭辞を使用して指定します。

パス・タイプ

testfile.jsonを例として使用した場合、次のタイプのパスがサポートされます。

  • 同じディレクトリからの相対パスの例: file://testfile.jsonおよびfile://relative/path/to/testfile.json
  • Linux、MacOSまたはUnixの絶対パスの例: file:///absolute/path/to/testfile.json
  • Windowsのフル・ファイル・パスの例: file://C:\path\to\testfile.json
ノート

ファイル・パスの展開

ファイル・パスの展開(「~/」、「./」、「../」など)がサポートされています。Windowsでは、「~/」表現は、%USERPROFILE%環境変数に格納されているユーザー・ディレクトリに展開されます。環境変数をパスで使用することもできます。

ファイルの場所

サポートされているファイルの場所は次のとおりです。

  • ホーム・ディレクトリ。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://~/testfile.json
  • 現在のディレクトリ。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://testfile.json
  • /tmpディレクトリ(Linux、UnixまたはMacOS)。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file:///tmp/testfile.json
  • C:\tempディレクトリ(Windows)。

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://C:\temp\testfile.json

JSONファイルを入力として使用する例

この項の例では、コマンド・オプションおよびコマンド全体に対して生成されるJSONを使用しています。JSONをファイルに保存して編集してから、コマンドライン入力として使用します。

コマンド・オプションに対するファイル入力の使用

この詳しい例では、サブネットの作成に使用されるセキュリティ・リストIDオプションのためのJSONを生成する方法を説明します。JSONをファイルに保存して編集してから、コマンドライン入力として使用します。

コマンドからの応答

[
  {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
    },
    {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
  }
]
コマンドからの応答
{
  "assignPublicIp": true,
  "availabilityDomain": "string",
  "compartmentId": "string",
  "displayName": "string",
  "extendedMetadata": {
  "string1": {
    "string1": "string",
    "string2": "string"
   },
  "string2": {
    "string1": "string",
    "string2": "string"
   }
  },
  "hostnameLabel": "string",
  "imageId": "string",
  "metadata": {
    "string1": "string",
    "string2": "string"
    },
  "privateIp": "string",
  "shape": "string",
  "skipSourceDestCheck": true,
  "subnetId": "string",
  "vnicDisplayName": "string"
}
JSONファイルをセキュリティ・リスト・オプションの入力として使用
  1. security-list-idsオプションのためのJSONを生成するには、次のコマンドを実行します。

    oci network subnet create --generate-param-json-input security-list-ids
  2. ファイルを作成し、ステップ1で戻された次の内容を追加します。この内容を、エスケープしたり、1行に入力したりする必要はありません。有効なJSONを含んでいることのみが必要です。

    [
      "string",
      "string"
    ]
  3. 次の例に示すように、ファイルを編集し、"string"値を値で置き換えます。

    [
      "ocid1.securitylist.oc1.phx.aaaaaaaaw7c62ybv4676muq5tdrwup3v2maiquhbkbh4sf75tjcf5dm6kvlq",
      "ocid1.securitylist.oc1.phx.aaaaaaaa7snx4jh5drwo2h33rwcdqev6elir55hnrhi2yfndjfons5rcqk4q"
    ]
  4. このファイルをsecurity-list.jsonとして保存します。
  5. security-list.jsonを入力として使用してサブネットを作成するには、次のコマンドを実行します。

    oci network subnet create --vcn-id ocid1.vcn.oc1.phx.aaaaaaaa6wmuahgxejkv7ukyruqdrwlmrumtl6vyisxxxavagiqw2eeet2sa -c ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa  --availability-domain "EMIr:PHX-AD-1" --display-name TESTSUB --dns-label "testinstances" --cidr-block "10.0.0.0/16" --security-list-ids file://security-list.json

コマンド全体に対するファイル入力の使用

この詳しい例では、仮想クラウド・ネットワーク(VCN)を作成するJSONの生成方法を示します。JSONをファイルに保存して編集してから、コマンドライン入力として使用します。

JSONファイルをVCN作成の入力として使用
  1. VCNの作成に必要なJSONを生成するには、次のコマンドを実行します。

    oci network vcn create --generate-full-command-json-input
  2. ファイルを作成し、ステップ1で戻された次の内容を追加します。この内容を、エスケープしたり、1行に入力したりする必要はありません。有効なJSONを含んでいることのみが必要です。

    {
      "cidrBlock": "string",
      "compartmentId": "string",
      "displayName": "string",
      "dnsLabel": "string"
    }
  3. 次の例に示すように、ファイルを編集し、"string"値を値で置き換えます。

    {
      "cidrBlock": "10.0.0.0/16",
      "compartmentId": "ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa",
      "displayName": "TestVCN",
      "dnsLabel": "testdns"
    }
  4. ファイルを保存し、create-vcn.jsonという名前を付けます
  5. create-vcn.jsonを入力として使用してVCNを作成するには、次のコマンドを実行します。
    oci network vcn create --from-json file://create-vcn.json 

高度な例

次の例では、CLIを使用してOracle Cloud Infrastructureの複雑なタスクを実行する方法を示します。

オブジェクト・ストレージの使用

オブジェクト・ストレージ・サービスのいくつかのオブジェクト操作でCLIを使用できます。

ファイルのアップロードとダウンロード

オブジェクトは、ファイルまたはコマンドライン(STDIN)からアップロードでき、ファイルまたはコマンドライン(STDOUT)にダウンロードできます。

オブジェクトをアップロード:

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt --metadata '{"key1":"value1","key2":"value2"}'

コマンドライン(STDIN)からオブジェクトの内容をアップロード:

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file <--'object content'

オブジェクトをダウンロード:

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt

オブジェクトの内容をコマンドライン(STDOUT)に出力:

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file -

オブジェクト・ストレージでの一括操作

CLIでは、オブジェクト・ストレージの次の一括操作がサポートされています:

  • ディレクトリとそのすべてのサブディレクトリ内のファイルのバケットへのアップロード

    # Upload all the files in a directory.
    oci os object bulk-upload -ns mynamespace -bn mybucket --src-dir path/to/upload/directory
  • バケット内のすべてのオブジェクト(または指定した接頭辞と一致するすべてのオブジェクト)のダウンロード

    # Download all the objects.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory
    						
    # Download all the objects that match the specified prefix.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory --prefix myprefix
  • バケット内のすべてのオブジェクト(または指定した接頭辞と一致するすべてのオブジェクト)の削除

    # Delete all the objects.
    oci os object bulk-delete -ns mynamespace -bn mybucket
    			
    # Delete objects that match the specified prefix.
    oci os object bulk-delete -ns mynamespace -bn mybucket --prefix myprefix

一括操作では、次のことができるいくつかのオプションがサポートされています:

  • --overwriteまたは--no-overwriteを使用してファイル/オブジェクトを上書きまたはスキップします。(ノート: これらのオプションをどちらも渡さない場合、上書きするものがあるたびに確認を求められます。)
  • --prefixまたは--delimiter (あるいは両方)を使用して、削除、アップロードまたはダウンロードの操作を制限します
  • --dry-runを使用して一括削除をプレビューします

一括操作のコマンドに関する詳細情報を取得するには、次のヘルプ・コマンドを実行します:

# bulk-upload
oci os object bulk-upload -h
				
# bulk-download
oci os object bulk-download -h
				
# bulk-delete
oci os object bulk-delete -h

オブジェクト・ストレージでのマルチパート操作

オブジェクト・ストレージのマルチパート操作には、オブジェクトのアップロードとダウンロードが含まれます。

マルチパート・アップロード

大きなファイルは、複数のパートでオブジェクト・ストレージにアップロードすることでアップロードを高速化できます。デフォルトでは、128MiBよりも大きいファイルはマルチパート操作を使用してアップロードされます。--no-multipartオプションを使用すると、このデフォルトをオーバーライドできます。

oci os object putコマンドで次のオプションを構成できます:

  • --no-multipartは、オブジェクトが128MiBを超える場合に、自動マルチパート・アップロードをオーバーライドします。オブジェクトはサイズに関係なく、単一のパートとしてアップロードされます。
  • マルチパート操作で使用する--part-size (MiB単位)。デフォルトのパート・サイズは128MiBで、指定するパート・サイズは10MiBより大きくする必要があります。オブジェクトが--part-sizeより大きい場合、複数のパートでアップロードされます。
  • 実行する並列操作の数を指定する--parallel-upload-count。この値を使用して、リソースとアップロード時間のバランスを調整します。値が大きいほど時間は短縮されますが、システム・リソースおよびネットワーク帯域幅の消費量が増加します。デフォルトの値は10です。

--resume-putコマンドを使用すると、大規模なファイルのアップロードが中断した場合にアップロードを再開できます。

ノート

STDINからのマルチパート・アップロード

STDINからアップロードされるオブジェクトは複数のパートでアップロードされます。オブジェクトの内容が10MiB未満の場合、アップロードは1パートのみになり、MultipartUpload APIがアップロードで使用されます。STDINからアップロードするときに--no-multipartを指定すると、エラーになります。

次の例は、オブジェクトが200MiBより大きい場合のマルチパート・アップロードのコマンドを示しています。

oci os object put -ns my-namespace -bn my-bucket --file path/to/large/file --part-size 200

マルチパート・アップロードの詳細は、マルチパート・アップロードの使用を参照してください。

マルチパート・ダウンロード

大きなファイルは、複数のパートでオブジェクト・ストレージにダウンロードすることでダウンロードを高速化できます。

oci os object getコマンドで次のオプションを構成できます:

  • --multipart-download-thresholdを使用して、複数パートでダウンロードすべきオブジェクトのサイズ(MiB単位)を指定できます。このサイズは128MiB以上にする必要があります。
  • ダウンロード・パートで使用する--part-size (MiB単位)。これを使用すると、要件に合せて柔軟に、パート数を多くする(小さいサイズ)か少なくする(大きいサイズ)ことができます。たとえば、コンピューティング性能とネットワーク帯域幅です。デフォルトの最小パート・サイズは120MiBです。
  • --parallel-download-countを使用すると、同時にダウンロードされるパート数を指定できます。値が大きいほど時間は短縮されますが、システム・リソースおよびネットワーク帯域幅の消費量が増加します。デフォルトの値は10です。

次の例は、サイズが500MiBを超える任意のオブジェクトをダウンロードするコマンドを示しています。オブジェクトは、128MiBのパートでダウンロードされます。

oci os object get -ns my-namespace -bn my-bucket --name my-large-object --multipart-download-threshold 500 --part-size 128