ossfs をさまざまなシナリオで使用するには、シナリオごとに特定の設定ファイルを作成する必要があります。その後、Object Storage Service (OSS) バケットをマウントするときにこのファイルを指定できます。このトピックでは、マウントオプションを使用してさまざまなシナリオ用の設定ファイルを生成する方法について説明します。
設定ファイルの作成
各設定ファイルでマウントできるバケットは 1 つだけです。複数のバケットをマウントするには、バケットごとに個別の設定ファイルを作成する必要があります。ファイル名とパスはカスタマイズできます。バケットをマウントするときは、対応する設定ファイルを指定してください。
ossfs 2.0 の設定ファイルの名前とパスを設定できます。たとえば、/etc/ossfs2.conf ファイルを作成できます。
sudo touch /etc/ossfs2.confアクセス認証情報の設定
AccessKey
ossfs 2.0.1 以降では、環境変数を使用して Resource Access Management (RAM) ユーザーの AccessKey ペアを設定し、OSS バケットをマウントできます。この方法はより安全で便利です。すでに環境変数を使用して AccessKey ペアを設定している場合は、設定ファイルで再度設定しないでください。
環境変数
export OSS_ACCESS_KEY_ID=LTAI******************
export OSS_ACCESS_KEY_SECRET=8CE4**********************設定ファイル
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
--oss_bucket=bucketName
--oss_access_key_id=AAAI************
--oss_access_key_secret=AAA8x*************************ECS インスタンス RAM ロール
ossfs 2.0.2 以降では、設定ファイルで インスタンスの RAM ロールを指定してアクセス認証情報を管理することをサポートしています。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
--oss_bucket=bucketName
--ram_role=EcsRamRoleOssTest外部プロセス
ossfs 2.0.5 以降では、外部コマンドを使用して独立したプロセス (外部プロセス) を開始できます。外部プロセスが実行されると、標準出力を介して ossfs に結果を返します。
認証情報を生成するコマンドは、不正なプロセスやユーザーからアクセスできないようにする必要があります。そうしないと、セキュリティリスクが発生する可能性があります。
認証情報を生成するコマンドは、機密情報を標準エラー出力 (stderr) に書き込まないでください。情報がキャプチャまたはログに記録され、不正なユーザーに公開される可能性があるためです。
外部コマンドは、次の形式で長期的な認証情報または一時的な認証情報を返すことができます。
長期的な認証情報
{
"AccessKeyId" : "ak",
"AccessKeySecret" : "sk",
}一時的な認証情報
{
"AccessKeyId" : "ak",
"AccessKeySecret" : "sk",
"Expiration" : "2025-12-29T07:45:02Z",
"SecurityToken" : "token",
}`Expiration` フィールドは ISO 8601 形式で、UTC で指定されます。
外部プロセスの設定形式は次のとおりです。
--credential_process=user-cmdシナリオに基づいて use-cmd を設定できます。設定要件は次のとおりです。
パラメーターまたはファイル名にスペースが含まれている場合は、文字列を二重引用符 ("") で囲みます。
プログラムは、
/bin/bash、/bin/echo、/bin/curlなどの完全なパスで指定する必要があります。コマンドに
$HOMEなどの環境変数を含めないでください。
一般的なシナリオは次のとおりです。
/etc/creds.txt という名前の一時ファイルを使用して認証情報を保存するには、コマンドを
--credential_process=/bin/cat /etc/creds.txtに設定します。カスタムサービスからアクセス認証情報を返すには、コマンドを
--credential_process=/bin/curl <Custom Service Endpoint>に設定します。
ossfs は、パラメーターが有効な JSON であり、必須フィールドが含まれているかどうかのみをチェックします。設定したコマンドが完全で有効なアクセス認証情報を出力できることを確認してください。たとえば、一時ファイルを使用する場合は、ファイルの更新がアトミックであることを確認してください。また、flock などのメカニズムを使用して、読み取りと書き込みの操作が相互排他的であることを保証することもできます。
設定ファイルのフォーマット
フォーマットの説明
フォーマットは --<option>[=<value>] です。-- はマウントオプションのプレフィックスです。<option> はオプション名です。[=<value>] はオプションの値です。角括弧 ([]) は、値がオプションであることを示します。
--<option>[=<value>] 設定例
# バケットが配置されているリージョンのエンドポイント。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# バケット名。
--oss_bucket=bucketName
# AccessKey ID と AccessKey Secret。(オプション) ossfs 2.0.1 以降では、環境変数を使用してアクセス認証情報を設定できます。設定ファイルで設定する必要はありません。
--oss_access_key_id=AAAI************
--oss_access_key_secret=AAA8x*************************一般的な設定例
バケットのエンドポイントを表示するには、[バケット] ページに移動します。対象のバケットを選択します。左側のナビゲーションウィンドウで、[概要] をクリックします。[概要] ページで、[ポート] セクションのリージョンを見つけます。次の図は、中国 (杭州) リージョンのバケットの例を示しています。

ossfs 2.0 の設定ファイルを開き、次の例に基づいて設定します。すべての例では、中国 (杭州) リージョンの内部エンドポイントを使用しています。内部ネットワークおよび OSS アクセラレータのエンドポイントは、同じリージョンの Virtual Private Cloud (VPC) 内のインスタンスからのマウントのみをサポートします。この方法により、より高速で安定したデータ転送が提供されます。パブリックエンドポイントで ossfs を使用しないでください。高レイテンシーや不安定なインターネット接続は、パフォーマンスの問題を引き起こす可能性があります。
バケット全体のマウント
バケット全体のすべてのフォルダとファイルをローカルパスにマウントできます。
# バケットが配置されているリージョンのエンドポイント。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# バケット名。
--oss_bucket=bucketName
# AccessKey ID と AccessKey Secret。(ossfs 2.0.1 以降ではオプション)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************バケット内の特定フォルダのマウント
バケットをマウントする際に、バケット内の特定のフォルダを指定してローカルパスにマウントできます。
# バケットが配置されているリージョンのエンドポイント。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# バケット名。
--oss_bucket=bucketName
# OSS フォルダのパス。(オプション)
--oss_bucket_prefix=folder-test/folder-prefix/
# AccessKey ID と AccessKey Secret。(ossfs 2.0.1 以降ではオプション)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************バケットのマウントとメモリ制限の設定
バケットをマウントする際に、ossfs 2.0 プロセスが使用する特定のメモリ量を割り当てることができます。
メモリ制限を設定しない場合、ossfs 2.0 はデフォルトでパフォーマンスが最適化されます。最高のパフォーマンスを実現するために、データの読み取りおよび書き込み操作に最大で約 8 GB のメモリを使用できます。メモリリソースが限られている場合は、total_mem_limit オプションを設定して、メモリ不足 (OOM) エラーを防ぐことを推奨します。
# バケットが配置されているリージョンのエンドポイント。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# バケット名。
--oss_bucket=bucketName
# メモリ制限パラメーター (バイト単位)。(オプション)
--total_mem_limit=4294967296
# AccessKey ID と AccessKey Secret。(ossfs 2.0.1 以降ではオプション)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************バケットのマウントとデバッグログの有効化
バケットをマウントする際に、ログレベルを debug に設定し、ログのカスタムパスを指定できます。
# バケットが配置されているリージョンのエンドポイント。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# バケット名。
--oss_bucket=bucketName
# ログを保存するパス。(オプション) /tmp/log フォルダが存在することを確認してください。
--log_dir=/tmp/log/ossfs2
# ログレベル。(オプション)
--log_level=debug
# AccessKey ID と AccessKey Secret。(ossfs 2.0.1 以降ではオプション)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************バケットのマウントとアクセス権限の設定
デフォルトでは、ossfs 2.0 を使用してバケットをマウントすると、すべてのユーザーにすべてのファイルに対する読み取りおよび書き込み権限が付与されます。より厳格な権限が必要な場合は、次の設定を使用できます。これらの例は、ossfs 2.0.1 以降にのみ適用されます。
バケット全体のすべてのフォルダをローカルパスにマウントし、root 以外のユーザーの読み取りおよび書き込みアクセスを制限できます。
# バケットが配置されているリージョンのエンドポイント。 --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com # バケット名。 --oss_bucket=bucketName # root 以外のユーザー (バケットをマウントしたユーザー) からのアクセスを拒否します。 --allow_other=false # グローバルフォルダの権限プロパティ。 --dir_mode=0755 # グローバルファイルの権限プロパティ。 --file_mode=0644 # AccessKey ID と AccessKey Secret。(ossfs 2.0.1 以降ではオプション) --oss_access_key_id=LTAI****************** --oss_access_key_secret=8CE4**********************バケット全体のすべてのフォルダをローカルパスにマウントできます。root ユーザーと特定のユーザーのみに読み取りおよび書き込みアクセスを許可し、他のユーザーには読み取り専用アクセスを許可できます。
# バケットが配置されているリージョンのエンドポイント。 --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com # バケット名。 --oss_bucket=bucketName # グローバルフォルダの権限プロパティ。 --dir_mode=0755 # グローバルファイルの権限プロパティ。 --file_mode=0644 # 指定されたユーザーの UID と GID。id コマンドを使用して、ユーザーの UID と GID を取得できます。 --uid=1000 --gid=1000 # AccessKey ID と AccessKey Secret。(ossfs 2.0.1 以降ではオプション) --oss_access_key_id=LTAI****************** --oss_access_key_secret=8CE4**********************
次のステップ
ossfs 2.0 をインストールして設定した後、バケットをローカルの Linux システムにマウントできます。詳細については、「バケットのマウント」をご参照ください。
関連ドキュメント
ossfs 2.0 のマウントオプションの詳細については、「マウントオプション」をご参照ください。