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

sigv4: V4 署名を使用するかどうかを制御します。マウント時に-osigv4を追加します。ossfs はデフォルトで OSS V1 署名を使用します。このマウントオプションを追加すると、ossfs は OSS V4 署名プロセスを使用して OSS に関連リクエストを送信します。region=cn-hangzhou: OSS バケットリクエストのリージョン識別子。マウント時に-oregion=<region_id>を追加します。デフォルトは空です。V4 署名を使用する場合、リクエストを開始するリージョンの識別子としてこのオプションを追加する必要があります。
基本的なマウント操作
設定ファイルを使用してバケットをローカルディレクトリにマウントする
バケットがマウントされるローカルディレクトリを作成します。
次のコマンドを実行して、バケットがマウントされる
/tmp/ossfs-1と/tmp/ossfs-2ディレクトリを作成します:mkdir /tmp/ossfs-1 /tmp/ossfs-2マウントコマンドを実行します。
次のコマンドを実行して、デフォルト設定ファイルの
bucket-test-1とbucket-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マウント結果は次の図のようになります。

ECS インスタンスの RAM ロールを使用してバケットをローカルファイルシステムにマウントする
バケットがマウントされるローカルディレクトリを作成します。
次のコマンドを実行して、
/tmp/ossfsという名前のローカルディレクトリを作成します:mkdir /tmp/ossfsマウントコマンドを実行します。
説明インスタンスメタデータ 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マウント結果は次の図のようになります。

シナリオベースのマウント
シナリオに基づいて、バケットを特定のローカルディレクトリにのみマウントしたり、特定の 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 オプションはログレベルを指定します。有効な値:
critical、error、warn、info、および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 | マウントポイントの権限を変更して、すべてのユーザーがディレクトリ内のオブジェクトではなくディレクトリにアクセスできるようにします。ディレクトリ内のオブジェクトの権限を指定する必要があります。オブジェクトの権限を変更するには、 |
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
次のコマンドを実行して、www ユーザーの UID と GID を取得します:
id www次の図は、コマンドの出力を示しています。

次のコマンドを実行して、
bucket_nameバケットをmount_pointディレクトリにマウントし、uidとgidパラメーターを指定し、ディレクトリとディレクトリ内のオブジェクトの権限を 770 に設定します。この場合、特定のグループのユーザーがディレクトリとディレクトリ内のオブジェクトにアクセスできます。この例では、uidとgidは 1000 に設定されています。ビジネスシナリオに基づいて、実際の UID と GID を置き換えてください。ossfs bucket_name mount_point -o url=endpoint -o allow_other -o uid=1000 -o gid=1000 -o umask=007
マウントスキル
バケットのアンマウント
次のコマンドを実行して、/tmp/ossfs ディレクトリにマウントされているバケットをアンマウントします:
umount /tmp/ossfs参考資料
Windows のローカルファイルシステムにバケットをマウントするには、Cloud Storage Gateway (CSG) を使用します。詳細については、「CSG コンソールでファイルゲートウェイを管理する」および「SMB 共有にアクセスする」をご参照ください。
ECS インスタンスの RAM ロールを使用して内部エンドポイント経由でバケットをローカルファイルシステムにマウントする場合、トラフィック料金は発生しません。詳細については、「トラフィック料金」をご参照ください。
ECS インスタンスとバケットが同じリージョンにない場合で、リージョンをまたいでバケットをローカルファイルシステムにマウントしたい場合は、ネットワーク接続が安定していることを確認してください。パブリックエンドポイントを使用してバケットをローカルファイルシステムにマウントできます。さらに、VPC 接続を介してリージョンをまたいで ECS インスタンスが OSS にアクセスできるようにすることができます。
Cloud Storage Gateway (CSG) を使用してインターネットインフォメーションサービス (IIS) でホストされる Web サイトを構築し、データを OSS に保存する方法の詳細については、「CSG に基づいて IIS でホストされる Web サイトを構築する」をご参照ください。
Windows を実行するローカルファイルシステムにバケットをマウントする方法の詳細については、「Rclone」をご参照ください。
マウントと権限の詳細については、「よくある質問」をご参照ください。