OSS が提供するマルチパートアップロードと再開可能アップロードを使用することで、オブジェクトを複数のデータブロック (パート) に分割し、個別にアップロードできます。 すべてのオブジェクトパートをアップロードした後、API を呼び出して、1 つのオブジェクトに結合できます。

シナリオ

(PutObject API による) 簡易アップロードを使用して、大きなオブジェクトを OSS にアップロードする場合、ネットワークエラーが原因でアップロードが失敗する場合があります。 2 回目のアップロード試行では、オブジェクトを最初からアップロードする必要があります。 この場合、マルチパートアップロードを使用して、最後にアップロードしたパートからアップロードを再開できます。

他のアップロード方法と比較して、マルチパートアップロードは次のシナリオに適しています。
  • ネットワーク接続性がよくない:あるパートのアップロードが失敗した場合、すべてのパートではなく、失敗したパートだけを再アップロードできます。
  • 再開可能アップロードが必要:進行中のアップロードは、いつでも一時停止と再開が可能です。
  • アップロードの高速化:OSS にアップロードするオブジェクトが大きい場合、複数のパートを同時にアップロードして処理を高速化できます。
  • ストリーミングアップロード:サイズの不確定なオブジェクトをいつでもアップロードできます。 このシナリオは、ビデオ監視などの産業アプリケーションで一般的です。

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

操作方法 説明
ossutil 優れたパフォーマンスを発揮するコマンドラインツール
Java SDK さまざまな言語の SDK デモ
Python SDK
PHP SDK
Go SDK
C SDK
.NET SDK

再開可能アップロード

マルチパートアップロード中にシステムがクラッシュした場合、アップロードを再開するには、ListMultipartUploadsListParts API を使用して、オブジェクトのすべてのマルチパートアップロードタスクを取得し、各タスクでアップロードされたパートを一覧表示します。 これにより、最後にアップロードしたパートからアップロードタスクを再開することができます。 アップロードを一時停止してから再開する場合も、同じ原則が適用されます。
操作方法 説明
Java SDK さまざまな言語の SDK デモ
Python SDK
Go SDK
C SDK
.NET SDK
Android SDK
iOS SDK

アップロードの制限

  • サイズ:オブジェクトの最大サイズは、パートのサイズによって決まります。 マルチパートアップロードは、最大 10,000 個のパートをサポートします。 各パートは、100 KB 以上 (最後のパートを除く。最後のパートは小さいサイズでも可)、5 GB 未満でなければなりません。 したがって、オブジェクトのサイズは 48.8 TB 以下にします。
  • 命名規則
    • オブジェクト名を UTF-8 でエンコードする必要があります。
    • オブジェクト名は 1 バイト以上 1,023 バイト以下にする必要があります。
    • オブジェクト名を、スラッシュ (/) またはバックスラッシュ (\) で始めることはできません。

マルチパートアップロードプロセス

マルチパートアップロードプロセスは次のとおりです。

  1. アップロードするオブジェクトを複数のパートに分割します。
  2. マルチパートアップロードタスクを初期化します (InitiateMultipartUpload APIを使用)。
  3. パートを 1 つずつまたは同時にアップロードします (UploadPart API を使用)。
  4. アップロードを完了します (CompleteMultipartUpload API を使用)。


マルチパートアップロードプロセス中、次の点に注意する必要があります。

  • 最後のパートを除くすべてのパートは、100 KB 以上でなければなりません。 それ以外の場合、CompleteMultipartUpload API の呼び出しに失敗します。
  • アップロードするオブジェクトをパートに分割した後、アップロード時に、指定された partNumber でソートされます。 ただし、順番にアップロードする必要はないため、パートを同時にアップロードできます。

    ネットワーク条件やデバイスの負荷により、多くのパートが同時にアップロードされる場合、アップロードは必ずしも高速化されません。 ネットワーク条件が良好な場合、パートサイズを増やすことを推奨します。そうでない場合はパートサイズを減らすことを推奨します。

  • デフォルトでは、すべてのパートがアップロードされていても、CompleteMultipartUpload API が呼び出されていない場合、アップロードされたパートは自動的に削除されません。 AbortMultipartUpload API を呼び出してアップロードを終了し、ストレージ領域を占有しているパートを削除することができます。 アップロードされたパートを自動的に削除する方法の詳細は、「ライフサイクルルールの管理」をご参照ください。

アップロードのセキュリティと認証

許可されていない第三者ユーザーがバケットにデータをアップロードできないようにするため、バケットレベルおよびオブジェクトレベルのアクセス制御が提供されています。 詳細は、「アクセス制御」をご参照ください。

第三者ユーザーにオブジェクトのアップロードを許可するため、アカウント認証も提供されています。 詳細は、「許可された第三者によるアップロード」をご参照ください。

次のステップ

  • OSS にオブジェクトをアップロードした後、アップロードコールバックを使用して、指定されたアプリケーションサーバーにコールバックリクエストを送信し、後続の操作を実行できます。
  • 画像をアップロードした後、画像処理を使用できます。
  • オーディオまたはビデオオブジェクトをアップロードした後、ApsaraVideo for Media Processing を使用できます。

API リファレンス