Object Storage Service (OSS) では、オブジェクトはデータストレージの基本単位であり、ファイルに似ています。ドキュメント、画像、動画などのあらゆるファイルは、管理のために バケット にオブジェクトとして保存されます。
オブジェクトのコンポーネント
キー: オブジェクトの名前です。オブジェクトのクエリに使用され、一意である必要があります。
データ: オブジェクトの実際のデータです。バイトのシーケンスで構成されます。
オブジェクトメタ: オブジェクトのメタデータです。メタデータは、最終更新日時やサイズなど、オブジェクトのプロパティを記述するキーと値のペアのセットです。メタデータを使用してカスタム情報を保存することもできます。
バージョン ID: バージョン管理 機能を有効にすると、オブジェクトの複数のバージョンを保存できます。既存の名前を持つオブジェクトをアップロードするたびに、OSS は新しいバージョンを作成し、一意のバージョン ID を割り当てます。この ID は、オブジェクトの特定のバージョンにアクセスして管理するために使用されます。
オブジェクトの命名 (キー)
各オブジェクトには、キーと呼ばれる一意の名前があります。たとえば、キー "exampledir/example.jpg" は、exampledir フォルダ内のファイル example.jpg を表します。
SDK ドキュメントでは、キーは ObjectKey、ObjectName、またはオブジェクト名とも呼ばれます。これらの用語は同じ意味です。
命名規則
UTF-8 エンコーディングを使用します。
長さは 1 バイトから 1,023 バイトの間でなければなりません。
フォワードスラッシュ (/) またはバックスラッシュ (\) で始めないでください。
キーでは大文字と小文字が区別されます。
命名に関する推奨事項
意味のある名前を使用する: ファイル名、日付、ユーザー ID などの意味のある名前を使用して、オブジェクトの検索と理解を容易にします。
プレフィックスを使用してデータを整理する。 日付、ユーザー ID、リージョンなどのプレフィックスを使用して階層を作成できます。
名前の一意性を確保する。 競合を避けるために、オブジェクト名に乱数または UUID を含めることができます。
命名例
バケット内のオブジェクトの場所 | キーの表現 |
exampleobject.txt という名前のオブジェクトが examplebucket バケットのルートディレクトリに保存されています。 | exampleobject.txt |
exampleobject.jpg という名前のオブジェクトが examplebucket バケットのルートディレクトリ内の destdir ディレクトリに保存されています。 | destdir/exampleobject.jpg |
OSS ディレクトリの表示
OSS には、ファイルやフォルダのような従来のファイルシステムの概念は存在しません。ユーザーエクスペリエンスを向上させるために、オブジェクトキーではフォワードスラッシュ (/) を使用して、exampledir/example.jpg のようなフォルダ構造を模倣します。この例では、exampledir をフォルダとして、example.jpg を exampledir 内のファイルとしてシミュレートしています。このフォルダのような構造は、OSS コンソールや ossbrowser などのグラフィカルツールで表示できます。ただし、オブジェクトキーは exampledir/example.jpg のままです。詳細については、「ディレクトリの管理」をご参照ください。
オブジェクトタイプ
オブジェクトは、作成方法に基づいて 4 つのタイプに分類できます。次の表に、これら 4 つのタイプについて説明します。
オブジェクトをあるタイプから別のタイプに変換することはできません。たとえば、通常オブジェクトをマルチパートオブジェクトや追加可能オブジェクトに変換することはできません。
タイプ | 定義 | 説明 |
通常 | このタイプのオブジェクトは、シンプルアップロード を使用して作成されます。 |
|
マルチパート | このタイプのオブジェクトは、マルチパートアップロード を使用して作成されます。 |
|
追加可能 | このタイプのオブジェクトは、追加アップロード を使用して作成されます。 | 追加可能オブジェクトにデータを追加しても、OSS はバージョン管理のステータスに関係なく、オブジェクトの新しいバージョンを作成しません。データは元のオブジェクトに直接追加されます。 |
シンボリックリンク | このタイプのオブジェクトは、PutSymlink 操作を呼び出して作成されたシンボリックリンクを使用して作成されます。 | シンボリックリンク を使用して、頻繁にアクセスされるオブジェクトにアクセスできます。 |
削除マーカー
OSS は、削除マーカー と呼ばれる特殊なタイプのオブジェクトマーカーを使用します。バージョン管理が有効または一時停止されているバケット内のオブジェクトを削除するために DeleteObject 操作を呼び出すと、OSS はそのオブジェクトの削除マーカーを生成します。削除時にバージョン ID が指定されていない場合、OSS は削除マーカーをオブジェクトの最新バージョンとして割り当てます。これにより、オブジェクト内のデータは削除後も保持され、復元できます。ただし、バージョン ID が指定されている場合、OSS は特定のバージョンを削除し、削除マーカーは生成しません。
特徴
オブジェクトのアップロード
手順 | 説明 |
PutObject API 操作を使用して、5 GB 未満の単一ファイルをアップロードします。この方法は、単一の HTTP リクエストで完了できるアップロードに適しています。 | |
ファイルを複数のパートに分割し、個別にアップロードします。すべてのパートがアップロードされたら、CompleteMultipartUpload API 操作を呼び出して、パートを単一のオブジェクトに結合します。 | |
チェックポイントファイルにチェックポイントを指定します。ネットワークエラーやプログラムのクラッシュによりアップロードが失敗した場合、アップロードは記録されたチェックポイントから再開され、残りのパートが転送されます。 | |
OSS は、ファイルのアップロードが完了した後、アプリケーションサーバーにコールバックを送信できます。コールバックを実装するには、OSS に送信されるリクエストに対応するコールバックパラメーターを含めます。 | |
クライアントから OSS にファイルを直接アップロードします。この方法では、アプリケーションサーバー経由でファイルをルーティングする必要がないため、アップロード速度が向上し、サーバーリソースが節約されます。 | |
PostObject API 操作を使用して、HTML フォームからファイルをアップロードします。アップロードされるファイルは 5 GB を超えることはできません。 | |
既存の追加可能オブジェクトの末尾にコンテンツを直接追加します。 | |
リアルタイムメッセージングプロトコル (RTMP) を使用して、H.264 でエンコードされたビデオストリームと AAC でエンコードされたオーディオストリームを OSS に取り込むことができます。アップロードされたオーディオおよびビデオデータは、オンデマンドで再生したり、遅延が重大な要因ではないシナリオでライブストリーミングに利用したりできます。 |
オブジェクトのダウンロード
手順 | 説明 |
GetObject API 操作を使用して、アップロードされたファイルをダウンロードします。この方法は、単一の HTTP リクエストで完了できるダウンロードに適しています。 | |
指定した位置からファイルのダウンロードを開始します。大きなファイルをダウンロードする場合、複数のパートに分けてダウンロードできます。ダウンロードが中断された場合、中断したところから再開できます。 | |
ファイルがバケットにアップロードされた後、その URL を第三者と共有してプレビューまたはダウンロードできます。 | |
オブジェクトは、最終更新日時または ETag によって決定されるコンテンツが変更された場合にのみダウンロードされます。この機能により、更新が発生した場合にのみダウンロードがトリガーされ、不要な繰り返しダウンロードが回避されます。 |
オブジェクトの管理
手順 | 説明 |
バケット内のオブジェクトは、デフォルトでアルファベット順にリストされます。必要に応じて、現在のバケット内のすべてのオブジェクト、特定のプレフィックスを持つオブジェクト、または特定の数のオブジェクトをリストできます。 | |
ファイルの内容を変更せずに、同じリージョン内のソースバケットから宛先バケットにファイルをコピーします。 | |
バケット内のオブジェクトの名前を変更できます。 | |
バケットに多数のオブジェクトが含まれている場合、OSS はファイル名のプレフィックスを指定することで、ターゲットファイルを迅速に検索して見つけることをサポートします。 | |
Cold Archive または Deep Cold Archive 内のオブジェクトにアクセスする前に、オブジェクトの復元プロセスを開始する必要があります。 | |
さまざまな方法を使用して、バケットに保持する必要がなくなったオブジェクトを削除します。 | |
OSS は、タグを使用してバケット内のオブジェクトを分類することをサポートしています。同じタグを持つオブジェクトに対して、ライフサイクルルールとアクセス権限を設定できます。 | |
シンボリックリンク機能は、バケット内で頻繁に使用されるオブジェクトにすばやくアクセスするために使用されます。シンボリックリンクを設定すると、シンボリックリンクファイルを使用してオブジェクトをすばやく開くことができます。 | |
オブジェクトメタデータは、ファイルのプロパティを記述します。これには、標準の HTTP ヘッダーとユーザー定義メタデータ (User Meta) が含まれます。ファイルの HTTP ヘッダーを設定して、キャッシュポリシーや強制ダウンロードポリシーなどの HTTP リクエストポリシーをカスタマイズできます。また、ユーザー定義メタデータを設定して、オブジェクトの目的やプロパティを識別することもできます。 | |
クライアントが OSS 内のファイルにアクセスすると、大量の帯域幅を消費し、他のアプリケーションに影響を与える可能性があります。OSS が提供する単一接続の帯域幅調整機能を使用して、ファイルのアップロードやダウンロードなどの操作中のトラフィックを制御できます。これにより、他のアプリケーションに十分なネットワーク帯域幅が確保されます。 | |
SelectObject を使用して、ターゲットファイルに対して SQL 文を実行し、実行結果を返します。 | |
マルチパートアップロード中に、一部のパートが不要になった場合、AbortMultipartUpload API 操作を呼び出して、これらの不完全なパートを削除できます。 | |
複数のユーザーが異なる場所やデバイスから OSS バケット内のリソースにアクセスできるようにするには、Cloud Storage Gateway (CSG) を使用して OSS バケットを共有ファイルストレージシステムにマッピングします。これにより、ユーザーはローカルファイルやディスクと同じように OSS リソースに対して操作を実行できます。 |