追加アップロードでは、OSS の AppendObject API を使用して、アップロード済みの追加可能オブジェクトにコンテンツを直接追加できます。

AppendObject API の詳細は、「AppendObject」をご参照ください。

シナリオ

簡易アップロードフォームアップロードマルチパートアップロードと再開可能アップロードでは、アップロードが完了した後、固定コンテンツを持つ標準オブジェクトのみを作成できます。 このオブジェクトは、読み取り可能ですが、変更することはできません。 オブジェクトのコンテンツを変更するには、同じ名前のオブジェクトをアップロードして、既存のオブジェクトを上書きする必要があります。 これは、OSS と一般的なファイルシステムとの大きな違いです。

この特徴により、上記のアップロード方法は、ビデオ監視やビデオライブストリーミングなど、多くのシナリオでは不便です。ビデオデータは常にリアルタイムで生成されるためです。 上記のアップロード方法を使用する場合、ビデオストリームを小さいパートに分割してから、新しいオブジェクトとしてアップロードする必要があります。 この方法は、実用的ではありません。

  • ソフトウェアアーキテクチャは複雑です。 オブジェクトの分割など、複雑な問題を考慮する必要があります。
  • 作成されたオブジェクトのリストなど、メタデータを保存するためのスペースを確保する必要があります。 OSS でリクエストを受信した後、メタデータを何度も読み取り、オブジェクトを作成するかどうかを決定する必要があります。 これにより、サーバーに高い負荷がかかります。 また、クライアントは 1 つのリクエストを 2 回送信する必要があり、レイテンシが発生します。
  • 小さいオブジェクトパートの場合、低レイテンシです。 ただし、オブジェクトの数が多すぎると、管理が難しくなります。 大きいオブジェクトパートの場合、高レイテンシです。

このようなシナリオで開発を簡素化し、コストを削減するため、追加アップロード (AppendObject API を使用) が提供されています。これにより、オブジェクトの末尾に直接コンテンツをを追加できます。 この方法でアップロードされたオブジェクトは追加可能オブジェクトですが、他の方法でアップロードされたオブジェクトは標準オブジェクトです。 追加されたデータは、即座に読み取り可能になります。

追加アップロードを使用することで、前述のシナリオのアーキテクチャがシンプルになります。 ビデオデータが生成されたら、追加アップロードを使用すると、即座に同じオブジェクトに追加されます。 クライアントは定期的にオブジェクトの長さを取得し、直前の値と比較する必要があります。 新しい読み取り可能データが見つかった場合、クライアントは読み取り操作を開始して、新しくアップロードされたデータを取得します。 この方法により、アーキテクチャが大幅に簡素化され、スケーラビリティが向上します。

ビデオのシナリオに加えて、ログデータの追加にも追加アップロードを使用できます。

操作方法

操作方法 説明
Java SDK さまざまな言語の SDK デモ
Python SDK
PHP SDK
Go SDK
C SDK
.NET SDK
Android SDK
iOS SDK

アップロードの制限

  • サイズ:このモードでは、オブジェクトの最大サイズは 5 GB です。
  • 命名規則:
    • オブジェクト名は UTF-8 でエンコードされている要があります。
    • オブジェクト名は 1 バイト以上 1,023 バイト以下にする必要があります。
    • オブジェクト名を、スラッシュ (/) またはバックスラッシュ (\) で始めることはできません。
  • オブジェクトタイプ:追加アップロードで作成されたオブジェクトにのみデータを追加できます。 したがって、簡易アップロード、フォームアップロード、マルチパートアップロード、再開可能アップロードで作成されたオブジェクトに新しいデータを追加することはできません。
  • 以降の操作:追加アップロードで作成されたオブジェクトはコピーできません。 ただし、オブジェクトの Object Meta は変更できます。

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

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

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

次のステップ

追加アップロードは、アップロードコールバックをサポートしていません。