すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトの概要

最終更新日:Nov 09, 2025

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.jpgexampledir 内のファイルとしてシミュレートしています。このフォルダのような構造は、OSS コンソールや ossbrowser などのグラフィカルツールで表示できます。ただし、オブジェクトキーは exampledir/example.jpg のままです。詳細については、「ディレクトリの管理」をご参照ください。

オブジェクトタイプ

オブジェクトは、作成方法に基づいて 4 つのタイプに分類できます。次の表に、これら 4 つのタイプについて説明します。

重要

オブジェクトをあるタイプから別のタイプに変換することはできません。たとえば、通常オブジェクトをマルチパートオブジェクトや追加可能オブジェクトに変換することはできません。

タイプ

定義

説明

通常

このタイプのオブジェクトは、シンプルアップロード を使用して作成されます。

  • バージョン管理が無効または一時停止されているバケットに複数のユーザーが同じ名前のオブジェクトをアップロードすると、最後にアップロードされたオブジェクトが前のオブジェクトを上書きします。最後にアップロードされたオブジェクトのみが保存されます。たとえば、ユーザー B の後にユーザー A がオブジェクトをアップロードした場合、ユーザー A のオブジェクトが保持され、ユーザー B のオブジェクトが置き換えられます。

  • 複数のユーザーがバージョン管理が有効なバケットに同じ名前のオブジェクトをアップロードすると、OSS はアップロード操作ごとにオブジェクトの新しいバージョンを作成し、新しいバージョンに一意のバージョン ID を割り当てます。OSS は、アップロードの開始時刻に基づいてオブジェクトの最新バージョンを識別します。たとえば、ユーザー A とユーザー B がバージョン管理が有効なバケットに同じ名前のオブジェクトをアップロードし、ユーザー B がユーザー A の後にアップロードを開始した場合、ユーザー B がアップロードしたオブジェクトが最新バージョンとして指定されます。

マルチパート

このタイプのオブジェクトは、マルチパートアップロード を使用して作成されます。

  • バージョン管理が無効または一時停止されているバケット内の既存のオブジェクトと同じ名前の完全なオブジェクトにアップロードされたパートを結合すると、新しいオブジェクトが既存のオブジェクトを置き換えます。最後に結合されたオブジェクトのみが保持されます。

  • バージョン管理が有効なバケット内の既存のオブジェクトと同じ名前の完全なオブジェクトにアップロードされたパートを結合すると、OSS はオブジェクトの新しいバージョンを作成し、一意のバージョン ID を割り当てます。最後に結合されたオブジェクトが最新バージョンとして指定されます。

追加可能

このタイプのオブジェクトは、追加アップロード を使用して作成されます。

追加可能オブジェクトにデータを追加しても、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 ベースのストリーム取り込み

リアルタイムメッセージングプロトコル (RTMP) を使用して、H.264 でエンコードされたビデオストリームと AAC でエンコードされたオーディオストリームを OSS に取り込むことができます。アップロードされたオーディオおよびビデオデータは、オンデマンドで再生したり、遅延が重大な要因ではないシナリオでライブストリーミングに利用したりできます。

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

手順

説明

シンプルダウンロード

GetObject API 操作を使用して、アップロードされたファイルをダウンロードします。この方法は、単一の HTTP リクエストで完了できるダウンロードに適しています。

ダウンロードの再開

指定した位置からファイルのダウンロードを開始します。大きなファイルをダウンロードする場合、複数のパートに分けてダウンロードできます。ダウンロードが中断された場合、中断したところから再開できます。

署名付き URL を使用してオブジェクトをダウンロードする

ファイルがバケットにアップロードされた後、その URL を第三者と共有してプレビューまたはダウンロードできます。

条件付きダウンロード

オブジェクトは、最終更新日時または ETag によって決定されるコンテンツが変更された場合にのみダウンロードされます。この機能により、更新が発生した場合にのみダウンロードがトリガーされ、不要な繰り返しダウンロードが回避されます。

オブジェクトの管理

手順

説明

オブジェクトのリスト

バケット内のオブジェクトは、デフォルトでアルファベット順にリストされます。必要に応じて、現在のバケット内のすべてのオブジェクト、特定のプレフィックスを持つオブジェクト、または特定の数のオブジェクトをリストできます。

オブジェクトのコピー

ファイルの内容を変更せずに、同じリージョン内のソースバケットから宛先バケットにファイルをコピーします。

オブジェクトの名前変更

バケット内のオブジェクトの名前を変更できます。

オブジェクトの検索

バケットに多数のオブジェクトが含まれている場合、OSS はファイル名のプレフィックスを指定することで、ターゲットファイルを迅速に検索して見つけることをサポートします。

ファイルの復元

Cold Archive または Deep Cold Archive 内のオブジェクトにアクセスする前に、オブジェクトの復元プロセスを開始する必要があります。

オブジェクトの削除

さまざまな方法を使用して、バケットに保持する必要がなくなったオブジェクトを削除します。

オブジェクトのタグ付け

OSS は、タグを使用してバケット内のオブジェクトを分類することをサポートしています。同じタグを持つオブジェクトに対して、ライフサイクルルールとアクセス権限を設定できます。

シンボリックリンクの作成

シンボリックリンク機能は、バケット内で頻繁に使用されるオブジェクトにすばやくアクセスするために使用されます。シンボリックリンクを設定すると、シンボリックリンクファイルを使用してオブジェクトをすばやく開くことができます。

オブジェクトメタデータの管理

オブジェクトメタデータは、ファイルのプロパティを記述します。これには、標準の HTTP ヘッダーとユーザー定義メタデータ (User Meta) が含まれます。ファイルの HTTP ヘッダーを設定して、キャッシュポリシーや強制ダウンロードポリシーなどの HTTP リクエストポリシーをカスタマイズできます。また、ユーザー定義メタデータを設定して、オブジェクトの目的やプロパティを識別することもできます。

単一接続の帯域幅調整

クライアントが OSS 内のファイルにアクセスすると、大量の帯域幅を消費し、他のアプリケーションに影響を与える可能性があります。OSS が提供する単一接続の帯域幅調整機能を使用して、ファイルのアップロードやダウンロードなどの操作中のトラフィックを制御できます。これにより、他のアプリケーションに十分なネットワーク帯域幅が確保されます。

ファイルのクエリ

SelectObject を使用して、ターゲットファイルに対して SQL 文を実行し、実行結果を返します。

パートの削除

マルチパートアップロード中に、一部のパートが不要になった場合、AbortMultipartUpload API 操作を呼び出して、これらの不完全なパートを削除できます。

CSG を使用して OSS バケットを ECS インスタンスにアタッチする

複数のユーザーが異なる場所やデバイスから OSS バケット内のリソースにアクセスできるようにするには、Cloud Storage Gateway (CSG) を使用して OSS バケットを共有ファイルストレージシステムにマッピングします。これにより、ユーザーはローカルファイルやディスクと同じように OSS リソースに対して操作を実行できます。

よくある質問