このトピックでは、ossfs 1.0 を使用して、Object Storage Service (OSS) バケットを Linux のローカルファイルシステムにマウントする方法について説明します。
前提条件
マウントコマンドの形式
-
コマンド形式:
ossfs bucket_name /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou -
パラメーターの説明
-
ossfs:ossfs コマンドです。 -
bucket_name:マウントするバケットの名前です。 -
/tmp/ossfs:バケットをマウントするローカルディレクトリで、マウントポイントとも呼ばれます。 -
-o:マウントオプションに必要なプレフィックスです。 -
url=http://oss-cn-hangzhou.aliyuncs.com:urlマウントオプションは、ターゲットバケットのエンドポイントを指定します。形式はhttp://endpointです。バケットのエンドポイントを確認するには、バケットリストページに移動し、目的のバケットを選択して、左側メニューで 概要 をクリックします。アクセスタイプ セクションにエンドポイントが表示されます。この例では、中国 (杭州) リージョンにあるバケットを使用します。
特定のネットワーク環境では、他のエンドポイントも利用できます。クラシックネットワークまたは VPC ネットワーク (内部) からアクセスする場合は
oss-cn-hangzhou-internal.aliyuncs.com、グローバル転送アクセラレーションドメインの場合はoss-accelerate.aliyuncs.com、OSS アクセラレータの場合はcn-hangzhou-internal.oss-data-acc.aliyuncs.comです。お使いのネットワーク環境に合わせてエンドポイントを選択してください。 -
sigv4:V4 署名を有効にします。マウントコマンドに-o sigv4を追加します。デフォルトでは、ossfs は V1 署名を使用します。このマウントオプションを追加すると、ossfs は V4 署名プロセスを使用して OSS にリクエストを送信します。 -
region=cn-hangzhou:OSS バケットリクエストのリージョン ID です。バケットをマウントする際に-o region=<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 -
出力は次のようになります。
root@i-xxx:~# ossfs xxx /tmp/ossfs-1 -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou [NOTICE] OSS signature V1 service will not be available for new uids since March 1st, 2025. It is recommended to mount with OSS signature V4: ossfs [oss-bucket] [mount-path] [options] -osigv4 -oregion=[your-region-id] root@i-xxx:~# root@i-xxx :~# df -h /tmp/ossfs-1 Filesystem Size Used Avail Use% Mounted on ossfs 16E 0 16E 0% /tmp/ossfs-1
ECS RAM ロールを使用したマウント
-
マウントディレクトリを作成します。
次のコマンドを実行して、バケットのマウントポイントとして使用する空のディレクトリ
/tmp/ossfsを作成します。mkdir /tmp/ossfs -
マウント例。
説明インスタンスメタデータ URL を使用して ossfs をマウントする場合、サポートされているのは 通常 アクセスモードのみです。メタデータアクセスモードの詳細については、「インスタンスメタデータ」をご参照ください。
次のコマンドを実行して、
bucket1という名前のバケットをローカルの/tmp/ossfsディレクトリにマウントします。注:ECS RAM ロールを使用してバケットをマウントする場合は、
ram_roleパラメーターでインスタンスメタデータ URL を指定する必要があります。IP アドレス100.100.100.200は、Alibaba Cloud ECS の インスタンスメタデータ サービスのデフォルト値であり、変更しないでください。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 -
出力は次のようになります。
root@xxx xxx:~# ossfs xxx /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o ram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/xxx -o sigv4 -o region=cn-hangzhou [NOTICE] OSS signature V1 service will not be available for new uids since March 1st, 2025. It is recommended to mount with OSS signature V4: ossfs [oss-bucket] [mount-path] [options] -osigv4 -oregion=[your-region-id] root@xxx xxx:~# root@xxx xxx:~# df -h /tmp/ossfs Filesystem Size Used Avail Use% Mounted on ossfs 16E 0 16E 0% /tmp/ossfs
特定のシナリオでのマウント
特定のディレクトリをマウントしたり、マウントオプションを追加したりできます。オプションの一覧については、「マウントオプション」をご参照ください。注:マウントコマンドを実行する前に、ローカルマウントディレクトリが空であることを確認してください。
特定のディレクトリのマウント
次のコマンドを実行して、bucket-ossfs-test バケット内の folder ディレクトリをローカルの /tmp/ossfs-folder ディレクトリにマウントします。
ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou
指定した設定ファイルを使用したマウント
-
マウントオプション: 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 -o sigv4 -o region=cn-hangzhou
マウント時のデバッグログの有効化
-
マウントオプション: 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 -o sigv4 -o region=cn-hangzhou -
マウント例 2
次のコマンドを実行して、
bucket-ossfs-test-2をローカルの/tmp/ossfs-2ディレクトリにマウントします。ログレベルはdebugに設定され、libfuseデバッグログが有効になります。ログメッセージは、-fオプションを使用してフォアグラウンドのターミナルに出力されます。ossfs bucket-ossfs-test-2 /tmp/ossfs-2 -d -o dbglevel=debug -f -o sigv4 -o region=cn-hangzhou
マウント時のアクセス権限の設定
デフォルトでは、マウントコマンドを実行したユーザー (所有者) のみがマウントされたディレクトリにアクセスできます。他のユーザーがマウントポイントにアクセスできるようにするには、バケットをマウントする際に、以下で説明するパラメーターを設定します。
|
パラメーター |
説明 |
|
allow_other |
すべてのユーザーがマウントポイントディレクトリ自体にアクセスできるようにしますが、ディレクトリ内のファイルにはアクセスできません。ファイルの権限は個別に設定する必要があります。 |
|
uid |
ディレクトリを所有するユーザーの UID です。 |
|
gid |
ディレクトリを所有するグループの GID です。 |
|
umask |
マウントポイント内のファイルとディレクトリのパーミッションマスクを設定します。たとえば、マウントポイントの権限を 770 に設定するには、-o umask=007 を追加します。権限を 700 に設定するには、-o umask=077 を追加します。 |
-
マウント例 1
bucket_nameをローカルのmount_pointディレクトリにマウントし、allow_otherマウントオプションを使用してすべてのユーザーにアクセスを許可します。これにより、マウントディレクトリの権限が 777 に設定されます。ossfs bucket_name mount_point -o url=endpoint -o allow_other -o sigv4 -o region=cn-hangzhou -
マウント例 2
bucket_nameをローカルのmount_pointディレクトリにマウントし、umaskマウントオプションを使用してマウントディレクトリとその中のファイルの権限を 770 に設定します。これにより、同じグループのユーザーのみがアクセスできるようになります。ossfs bucket_name mount_point -o url=endpoint -o umask=007 -o sigv4 -o region=cn-hangzhou -
マウント例 3
-
次のコマンドを実行して、特定のユーザーの UID、GID、およびグループを取得します。この例では
wwwユーザーを使用します。id wwwコマンドの出力は次のようになります。
root@iZbp1325rf1sja6ye4kbm2Z:~# id www uid=xxx(www) gid=xxx(www) groups=xxx(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 -o sigv4 -o region=cn-hangzhou
-
ヒント
バケットのアンマウント
バケットをアンマウントするには、次のコマンドを実行します。たとえば、/tmp/ossfs にマウントされているファイルシステムをアンマウントするには:
umount /tmp/ossfs
よくある質問
-
Windows システムに OSS バケットをマウントするには、Cloud Storage Gateway (CSG) を使用します。詳細については、「Alibaba Cloud コンソールでファイルゲートウェイを使用する」および「SMB 共有ディレクトリにアクセスする」をご参照ください。
-
ECS インスタンスから内部エンドポイント経由で OSS バケットをマウントする場合、トラフィック料金は発生しません。トラフィック料金の詳細については、「トラフィック料金」をご参照ください。
-
ECS インスタンスと OSS バケットが異なるリージョンにあり、リージョンをまたいでバケットをマウントする必要がある場合は、ネットワーク接続を確認してください。パブリックエンドポイントを直接使用してバケットをマウントできます。また、「ECS インスタンスがプライベートネットワーク経由で別のリージョンの OSS サービスにアクセスできるようにする」こともできます。
-
Cloud Storage Gateway を使用して IIS Web サイトを構築し、データストレージに OSS を使用する必要がある場合は、「Alibaba Cloud Storage Gateway を使用した IIS Web サイトの構築」をご参照ください。
Windows オペレーティングシステムに OSS バケットをマウントする必要がある場合は、「Rclone」をご参照ください。
-
マウントや権限に関する問題の詳細については、「よくある質問」をご参照ください。