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

Object Storage Service:ossfs 1.0 を使用して Linux のローカルファイルシステムにバケットをマウントする

最終更新日:Nov 09, 2025

このトピックでは、ossfs を使用して Object Storage Service (OSS) バケットを Linux のローカルファイルシステムにマウントする方法について説明します。

前提条件

ossfs 1.0 がインストールされ、設定されています。

コマンドフォーマット

  • フォーマット: ossfs bucket_name /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou

  • パラメーターの説明

    • ossfs: プログラム。

    • bucket_name: ローカルファイルシステムにマウントするバケットの名前。

    • /tmp/ossfs: バケットがマウントされるローカルファイルシステム内のローカルディレクトリ。

    • -o: マウントオプションに追加する必要があるプレフィックス。

    • url=http://oss-cn-hangzhou.aliyuncs.com: バケットが配置されているリージョンのエンドポイント。http://Endpoint 形式です。

      OSS コンソールにログオンし、[バケット] ページでバケットを選択し、[概要] ページの [ポート] セクションでバケットが配置されているエンドポイントを表示します。この例では、中国 (杭州) リージョンのバケットが使用されています。

      image

    • sigv4: V4 署名を使用するかどうかを制御します。マウント時に -osigv4 を追加します。ossfs はデフォルトで OSS V1 署名を使用します。このマウントオプションを追加すると、ossfs は OSS V4 署名プロセスを使用して OSS に関連リクエストを送信します。

    • region=cn-hangzhou: OSS バケットリクエストのリージョン識別子。マウント時に -oregion=<region_id> を追加します。デフォルトは空です。V4 署名を使用する場合、リクエストを開始するリージョンの識別子としてこのオプションを追加する必要があります。

基本的なマウント操作

設定ファイルを使用してバケットをローカルディレクトリにマウントする

  1. バケットがマウントされるローカルディレクトリを作成します。

    次のコマンドを実行して、バケットがマウントされる /tmp/ossfs-1/tmp/ossfs-2 ディレクトリを作成します:

    mkdir /tmp/ossfs-1 /tmp/ossfs-2
  2. マウントコマンドを実行します。

    次のコマンドを実行して、デフォルト設定ファイルの bucket-test-1bucket-test-2 バケットを、それぞれ /tmp/ossfs-1/tmp/ossfs-2 ディレクトリにマウントします。

    ossfs bucket-test-1 /tmp/ossfs-1/ -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou
    ossfs bucket-test-2 /tmp/ossfs-2/ -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou
  3. マウント結果は次の図のようになります。

    image

ECS インスタンスの RAM ロールを使用してバケットをローカルファイルシステムにマウントする

  1. バケットがマウントされるローカルディレクトリを作成します。

    次のコマンドを実行して、/tmp/ossfs という名前のローカルディレクトリを作成します:

    mkdir /tmp/ossfs
  2. マウントコマンドを実行します。

    説明

    インスタンスメタデータ URL に基づいて ossfs を使用してバケットをローカルディレクトリにマウントします。サポートされているのは通常モードのみです。詳細については、「メタデータアクセスモード」をご参照ください。

    次のコマンドを実行して、bucket1 バケットを /tmp/ossfs ディレクトリにマウントします:

    注: ECS インスタンスの RAM ロールを使用してバケットをローカルファイルシステムにマウントする場合は、ram_role パラメーターを使用してインスタンスメタデータ URL を指定する必要があります。100.100.100.200 は、インスタンスメタデータのデフォルトの IP アドレスです。デフォルトの IP アドレスを変更する必要はありません。EcsRamRoleOssTest パラメーターを ECS インスタンスにアタッチされているロールの名前に設定します。他の設定は変更しないでください。

    ossfs bucket1 /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o ram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/EcsRamRoleOssTest -o sigv4 -o region=cn-hangzhou
  3. マウント結果は次の図のようになります。

    image

シナリオベースのマウント

シナリオに基づいて、バケットを特定のローカルディレクトリにのみマウントしたり、特定の ossfs でサポートされているオプション を使用してバケットをローカルファイルシステムにマウントしたりできます。注: マウントコマンドを実行する前に、ローカルディレクトリが空であることを確認してください。

バケットをローカルファイルシステムのディレクトリにマウントする

次のコマンドを実行して、bucket-ossfs-test バケット内の folder ディレクトリをローカルの /tmp/ossfs-folder ディレクトリにマウントします:

ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -o url=http://oss-cn-hangzhou.aliyuncs.com

設定ファイルを使用してバケットをローカルディレクトリにマウントする

  • マウントオプション: passwd_file オプションを使用して ossfs 1.0 設定ファイルのカスタムパスを指定し、設定ファイルの権限を 600 に設定します。

  • マウント例

    次のコマンドを実行して、設定ファイルで設定された bucket-test-3 バケットをローカルの /tmp/ossfs-3 ディレクトリにマウントします:

    ossfs bucket-test-3 /tmp/ossfs-3 -o url=http://oss-cn-hangzhou.aliyuncs.com -o passwd_file=/etc/passwd-ossfs-3

バケットをローカルファイルシステムにマウントするときにデバッグロギングを有効にする

  • マウントオプション: dbglevel オプションはログレベルを指定します。有効な値: criticalerrorwarninfo、および debug。デフォルト値: critical。デフォルトのログストレージパス: ログは CentOS の場合は /var/log/messages に保存され、Ubuntu の場合は /var/log/syslog に保存されます。logfile オプションを使用してログストレージパスを指定することもできます。

  • マウント例 1

    次のコマンドを実行して、bucket-ossfs-test-1 バケットをローカルの /tmp/ossfs-1 ディレクトリにマウントし、-d オプションを指定して libfuse デバッグログを有効にし、dbglevel オプションを指定してログレベルを debug に設定します。

    ossfs bucket-ossfs-test-1 /tmp/ossfs-1 -d -o dbglevel=debug
  • マウント例 2

    次のコマンドを実行して、bucket-ossfs-test-2 バケットをローカルの /tmp/ossfs-2 ディレクトリにマウントし、ログレベルを debug に設定し、libfuse デバッグログを有効にし、-f オプションを指定してログをターミナルに表示します。

    ossfs bucket-ossfs-test-2 /tmp/ossfs-2 -d -o dbglevel=debug -f

バケットをローカルファイルシステムにマウントするときのアクセス権限の設定

デフォルトでは、ossfs がバケットをマウントするディレクトリには、マウントポイントのオーナーのみがアクセスできます。マウントポイントのオーナーは、マウント操作を実行するユーザーです。デフォルトの権限設定を変更して、他のユーザーまたはユーザーグループがマウントポイントにアクセスできるようにするには、ossfs の実行時に次のオプションを使用できます:

マウントオプション

説明

allow_other

マウントポイントの権限を変更して、すべてのユーザーがディレクトリ内のオブジェクトではなくディレクトリにアクセスできるようにします。ディレクトリ内のオブジェクトの権限を指定する必要があります。オブジェクトの権限を変更するには、chmod コマンドを実行します。すべてのオブジェクトの権限を変更するには、umask オプションを使用します。

uid

ディレクトリのオーナーのユーザー ID (UID) を指定します。

gid

ディレクトリのオーナーのグループ ID (GID) を指定します。

umask

マウントポイント上のファイルとディレクトリの権限マスクを指定します。たとえば、-oumask=007 を使用してマウントポイントのファイル権限を 770 に設定したり、-oumask=077 を使用してマウントポイントのファイル権限を 700 に設定したりできます。

  • マウント例 1

    次のコマンドを実行して、bucket_name バケットを mount_point ディレクトリにマウントし、allow_other オプションを指定してディレクトリの権限を 777 に設定します。この場合、すべてのユーザーがディレクトリにアクセスできます。

    ossfs bucket_name mount_point -o url=endpoint -o allow_other
  • マウント例 2

    次のコマンドを実行して、bucket_name バケットを mount_point ディレクトリにマウントし、umask オプションを指定してディレクトリとディレクトリ内のオブジェクトの権限を 770 に設定します。この場合、特定のグループのユーザーがディレクトリとディレクトリ内のオブジェクトにアクセスできます。

    ossfs bucket_name mount_point -o url=endpoint -o umask=007
  • マウント例 3

    1. 次のコマンドを実行して、www ユーザーの UID と GID を取得します:

      id www

      次の図は、コマンドの出力を示しています。

      image

    2. 次のコマンドを実行して、bucket_name バケットを mount_point ディレクトリにマウントし、uidgid パラメーターを指定し、ディレクトリとディレクトリ内のオブジェクトの権限を 770 に設定します。この場合、特定のグループのユーザーがディレクトリとディレクトリ内のオブジェクトにアクセスできます。この例では、uidgid は 1000 に設定されています。ビジネスシナリオに基づいて、実際の UID と GID を置き換えてください。

      ossfs bucket_name mount_point -o url=endpoint -o allow_other -o uid=1000 -o gid=1000 -o umask=007

マウントスキル

起動時の自動マウントを有効にする

バケットを手動でマウントした後、システムが再起動してもバケットは自動的に再マウントされません。システム再起動後にバケットが自動的にマウントされるようにするには、次の手順を実行します。起動時の自動マウントを有効にする前に、上記の手動マウント操作が成功していることを確認してください。これにより、ECS インスタンスの起動失敗を防ぎます。次の例では、Alibaba Cloud アカウントの AccessKey ペアを使用してバケットをローカルファイルシステムにマウントした後に、起動時の自動マウントが有効になります。

  1. バケット名、AccessKey ID、AccessKey Secret などの情報を /etc/passwd-ossfs ファイルに追加し、ファイルの権限を 640 に設定します。

    詳細については、「ossfs 1.0 の設定」をご参照ください。

  2. 起動時の自動マウントを有効にします。

    説明

    次の例は、一般的なディストリビューションとバージョンで起動時の自動マウントを有効にする方法を示しています。他のディストリビューションとバージョンについては、関連ドキュメントをご参照ください。

    Ubuntu 14.04 以降および CentOS 6.5 以降で fstab ファイルを使用して起動時の自動マウントを有効にする

    1. /etc/fstab ファイルに次のコマンドを追加します:

      ossfs#bucket_name mount_point fuse _netdev,url=url,allow_other 0 0

      次の表にパラメーターを示します。

      パラメーター

      説明

      bucket_name

      バケットの名前。

      mount_point

      バケットをマウントするローカルディレクトリ。

      url=url

      バケットが配置されているリージョンのエンドポイント。

      0 0

      ファイルシステムのオプション。

    2. /etc/fstab ファイルを保存します。mount -a -t fuse コマンドを実行します。エラーが報告されなければ、設定は正しく構成されています。

    3. 上記の手順を完了すると、Ubuntu 14.04 以降で起動時の自動マウントが有効になります。CentOS 6.5 以降の場合は、次のコマンドも実行する必要があります:

      chkconfig netfs on

    CentOS 7.0 以降でスクリプトを使用して起動時の自動マウントを有効にする

    1. /etc/init.d/ ディレクトリに ossfs ファイルを作成し、次のコマンドをこのファイルにコピーします。さらに、マウントコマンドの情報を宛先バケットの情報に変更します。

      #!  /bin/bash
      #
      # ossfs      指定されたディレクトリに Aliyun OSS バケットを自動マウントします。
      #
      # chkconfig: 2345 90 10
      # description: 起動時に開始するように設定された ossfs を有効化/無効化します。
      
      ossfs your_bucket your_mountpoint -ourl=your_url -oallow_other
    2. 次のコマンドを実行して、ossfs スクリプトを実行するための実行権限を付与します:

      chmod a+x /etc/init.d/ossfs

      上記のコマンドを実行した後、スクリプトを実行できます。スクリプトの内容が正しければ、バケットは指定されたディレクトリにマウントされます。

    3. 次のコマンドを実行して、起動時に自動的に有効になるサービスとして ossfs スクリプトを開始します:

      chkconfig ossfs on
    4. 上記の手順を完了すると、ossfs は起動時にバケットを自動的にマウントします。

バケットのアンマウント

次のコマンドを実行して、/tmp/ossfs ディレクトリにマウントされているバケットをアンマウントします:

umount /tmp/ossfs

参考資料