Oracle Cloud Infrastructureドキュメント

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

Oracle Cloud Infrastructure Object Storageサービスは、より効率的で復元力の高いアップロード、特に大きなオブジェクトのアップロードのために、マルチパート・アップロードをサポートしています。 マルチパートのアップロードは、API、Java SDK、または「コマンド・ライン・インタフェース(CLI)」を使用して実行できますが、コンソールは実行できません。 マルチパート・アップロードでは、オブジェクトの個々の部分を並行してアップロードして、アップロードに費やす時間を短縮できます。 APIを使用して実行されるマルチ・ポート・アップロードは、オブジェクト・アップロード全体を再試行する必要はなく、失敗したパーツのアップロードを再試行できるので、ネットワーク障害の影響を最小限に抑えることができます。

マルチパートのアップロードでは、単一のアップロード操作では大きすぎるオブジェクトに対応できます。 100 MiBバイト以上のオブジェクトをアップロードするには、マルチパート・アップロードを実行することをお薦めします。 アップロードされたオブジェクトの最大サイズは10 TiBです。 オブジェクト・パーツは50 GiB以下でなければなりません。 APIを使用して実行される非常に大規模なアップロードの場合、個々のパーツのアップロード間で一時停止し、スケジュールやリソースに応じてアップロードを再開することができます。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者が作成するポリシーで、コンソールまたはSDK、CLIまたはその他のツールを使用したREST APIのどちらを使用しているかにかかわらず、必要なタイプのアクセスを付与する必要があります。 アクションを実行しようとしたときに、権限のないメッセージや権限のないメッセージを取得する場合は、管理者に付与されているアクセスのタイプと作業するコンパートメントを確認してください。

管理者向け: 「Object Storage管理者がバケットやオブジェクトを管理できるようにします」のポリシーは、指定されたグループがバケットとオブジェクトですべてを行うことを可能にします。

新しいポリシーの場合は、「ポリシーの開始」「共通ポリシー」を参照してください。 Object Storageの書込みポリシーをさらに深く検証する場合は、「オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細」を参照してください。

リソースのモニター

Oracle Cloud Infrastructureリソースのヘルス、容量、およびパフォーマンスをモニターするには、メトリック、アラーム、および通知を使用します。 詳細は、「Monitoring概要」および「Notifications概要」を参照してください。

マルチパートのアップロードのモニターの詳細は、「Object Storageメトリック」を参照してください。

マルチパート・アップロードAPIの使用

APIを使用して実行されるマルチパート・アップロードは、次のステップで構成されます:

  1. アップロードの開始
  2. オブジェクト・パーツのアップロード
  3. アップロードのコミット

マルチパート・アップロードAPIを使用する前に、アップロードするパートを作成する必要があります。 Object Storage残りのステップのAPI操作を提供します。 このサービスは、進行中のマルチパート・アップロードのリスト、進行中のマルチパート・アップロード中のオブジェクト・パーツの一覧表示、およびAPIを介して開始された進行中のマルチパート・アップロードの中止のためのAPI操作も提供します。

ここでは、APIのステップについて説明しますが、サポートされているAPI呼び出しの詳細については、「APIリファレンス」を参照してください。

オブジェクト・パーツの作成

マルチパート・アップロードでは、アップロードするオブジェクトを個々の部分に分割します。 個々の部品は、50 GiBと同じ大きさでも、10 MBと同じ小ささでもかまいません。 (Object Storageは、最後にアップロードされた部品の最小部品サイズ制限を放棄します)。 各部品に使用する部品番号を決定します。 部品番号の範囲は1〜10,000です。 連続した番号を割り当てる必要はありませんが、Object Storageは部品番号を昇順に並べることでオブジェクトを構築します。

アップロードの開始

オブジェクト・パーツの作成が完了したら、CreateMultipartUpload REST API呼び出しを作成してマルチパート・アップロードを開始します。 オブジェクト名とオブジェクト・メタデータを指定します。 Object Storageこのマルチパート・アップロードに関連するリクエストに含める必要がある一意のアップロードIDで応答します。 Object Storageもアップロードをアクティブとしてマークします。 アップロードは、明示的にコミットするか、中止するまで有効です。

オブジェクト・パーツのアップロード

各オブジェクト・パーツのアップロードのためのUploadPartリクエストを作成します。 リクエスト・パラメータで、Object Storage 「ネームスペース」、バケット名、アップロードID、部品番号を入力します。 リクエスト本文に、オブジェクト部分を含めます。 オブジェクト・パーツは、任意の順序で並行してアップロードできます。 アップロードをコミットすると、Object Storageは部品番号を使用してオブジェクト部分を順序付けします。 部品番号は連続している必要はありません。 複数のオブジェクト・パーツが同じアップロードIDとパーツ番号を使用してアップロードされている場合は、最後のアップロードによってパーツが上書きされ、CommitMultipartUpload APIを呼び出すとコミットされます。

Object Storageは、アップロードされた各パートのETag (エンティティ・タグ)値を返します。 アップロードをコミットするときは、部品ごとに部品番号と対応するETag値が必要です。

ネットワークに問題がある場合は、個々のパーツの失敗したアップロードを再開できます。 アップロード全体を再起動する必要はありません。 何らかの理由で一度にアップロードを実行できない場合、multipartアップロードでは、自分のペースでパートをアップロードし続けることができます。 マルチパート・アップロードはまだ有効ですが、合計数が10,000未満であれば、パーツの追加を継続できます。

アップロードされたすべてのパーツを一覧表示することで、アクティブなマルチパート・アップロードをチェックすることができます。 (アクティブなマルチパート・アップロードで個々のオブジェクト・パーツの情報を一覧表示することはできません)。 ListMultipartUploadParts操作には、Object Storageネームスペース、バケット名、およびアップロードIDが必要です。 Object Storageは、指定されたアップロードIDに関連付けられているパーツに関する情報で応答します。 部品情報には、部品番号、ETag値、MD5ハッシュ、部品サイズ(バイト単位)が含まれます。

同様に、複数のマルチパート・アップロードが同時に発生している場合、どのアップロードが進行中であるかを見ることができます。 指定されたObject Storageネームスペースとバケット内のアクティブなマルチパート・アップロードを一覧表示するListMultipartUploads API呼び出しを作成します。

データをアップロードすると、部品の保管費用が発生します。

アップロードのコミット

すべてのオブジェクト・パーツをアップロードしたら、それをコミットしてマルチパート・アップロードを完了します。 CommitMultipartUploadリクエスト・パラメータを使用して、Object Storageネームスペース、バケット名、およびアップロードIDを指定します。 リクエストの本文に各パートの部品番号と対応するETag値を含めます。 アップロードをコミットすると、Object Storageはその構成部分からオブジェクトを構築します。 オブジェクトは、指定されたバケットおよびObject Storageネームスペースに格納されます。 他のどんなオブジェクトと同じように扱うことができます。 ガベージ・コレクションは、アップロードしたがCommitMultipartUploadリクエストには含まれていないパーツ番号が占めるストレージ・スペースを解放します。

完了したアップロードからパーツの一覧表示や取得はできません。 完成したアップロードからパーツを追加または削除することはできません。 必要に応じて、新しいアップロードを開始してオブジェクトを置き換えることができます。

マルチパート・アップロードをコミットするのではなく中止する場合は、進行中のパート・アップロードが完了するまで待ってから、AbortMultipartUpload操作を使用します。 いずれにしても、パートのアップロードが進行中の間にアップロードを中止すると、Object Storageは完了したパートと進行中のパートの両方をクリーンアップします。 中止されたマルチパート・アップロードのアップロードIDは再利用できません。

APIドキュメント

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

マルチパート・アップロードを管理するには、次の操作を使用します:

CLIの使用

CLIを使用してマルチパート・アップロードを実行する場合、APIによって必要とされるようにオブジェクトを複数の部分に分割する必要はありません。 代わりに、選択した部品のサイズを指定し、Object Storageはオブジェクトを部品に分割し、すべての部品の自動アップロードを実行します。 並行してアップロードできるパーツの最大数を設定することができます。 デフォルトでは、CLIはアップロードできるパーツの数を3つに制限しています。 CLIを使用する場合、アップロードが完了したときにコミットを実行する必要はありません。

また、CLIを使用して、進行中のマルチパート・アップロードを一覧表示したり、APIを通じて開始されたマルチパート・アップロードを中止することもできます。

CLIの使用方法の詳細は、「コマンド・ライン・インタフェース(CLI)」を参照してください。 CLIコマンドで使用可能なフラグおよびオプションの完全なリストについては、「CLIヘルプ」を参照してください。

CLIを使用してマルチパート・アップロードを実行するには
バケットの進行中のマルチパート・アップロードを一覧表示するには
API経由で開始されたコミットされていないマルチパート・アップロードを中止するには