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

Object Storage Service:ossfs 2.0 のファイルとフォルダの検出メカニズム

最終更新日:Dec 19, 2025

本トピックでは、ossfs 2.0 が Object Storage Service (OSS) バケット内のファイルとフォルダをどのように検出するかについて説明します。

オブジェクトストレージと従来のストレージの主な違い

オブジェクトストレージは、従来のファイルシステムの階層的なフォルダ構造とは異なり、フラットなアドレス空間を使用してデータを格納します。主な違いは次のとおりです:

  • 階層的な関連性がない:OSS バケットにはファイルやフォルダという概念がなく、すべてのデータはオブジェクトとして格納されます。

  • 命名規則の違い

    • 従来のファイルシステム:同じフォルダ内に 'a' という名前のファイルと 'a/' という名前のフォルダを共存させることはできません。

    • オブジェクトストレージ:'a' と 'a/' は 2 つの独立したオブジェクトです。これらは共存可能であり、論理的な関連性はありません。

ossfs 2.0 のファイルシステムシミュレーションメカニズム

ossfs 2.0 を使用して OSS バケットをマウントすると、ossfs は次のようにファイルシステムをシミュレートします。

  • フォルダツリーの構築:オブジェクト名に基づいて、スラッシュ (/) をパス区切り文字として使用し、仮想的なフォルダ構造を構築します。

  • 検出ロジック:オブジェクト名に含まれるスラッシュ (/) 区切り文字とサブオブジェクト間の関係を分析することで、オブジェクトタイプ (ファイルまたはフォルダ) を推測します。

オブジェクトの検出原理

重要

ossfs 1.0 や ossfs 2.0 などのツール、または Cloud Storage Gateway (CSG) などのプロダクトを使用して OSS バケットをマウントする場合、バケット内にオブジェクトを作成する際はファイルシステムの命名規則に従ってください。aa/ のように、末尾のスラッシュの有無のみが異なる名前のオブジェクトを作成しないでください。

シナリオ

検出結果

条件またはロジック

バケットにオブジェクト a のみが含まれる場合。

ファイル

末尾に / がない単一のオブジェクトは、デフォルトでファイルと見なされます。

バケットにオブジェクト a/ のみが含まれる場合。

フォルダ

オブジェクト名が / で終わる場合は、仮想フォルダと見なされます。

バケットにオブジェクト a/b は含まれるが、a または a/ は含まれない場合。

フォルダ

サブオブジェクトのパス a/b から、親 a が仮想フォルダとして推測されます。

バケットにオブジェクト a とオブジェクト a/ の両方が含まれる場合。

未定義の動作

バケット内のオブジェクトの命名が、ファイルシステムの規則に従っていません。

バケットにオブジェクト aa/b は含まれるが、a/ は含まれない場合。

未定義の動作

バケット内のオブジェクトの命名が、ファイルシステムの規則に従っていません。