Object Storage Service (OSS) バケットをマウントするには、特定のシナリオに対応した設定ファイルが必要です。バケットをマウントする際には、この設定ファイルを参照してください。
設定ファイルの作成
各設定ファイルでマウントできるバケットは 1 つのみです。複数のバケットをマウントする場合は、バケットごとに個別の設定ファイルを作成する必要があります。ファイル名とパスはカスタマイズできます。
ossfs 2.0 の設定ファイルには、任意の名前とパスを使用できます。例えば、/etc/ossfs2.conf という名前のファイルを作成します。
sudo touch /etc/ossfs2.conf
アクセス認証情報の設定
アクセスキーペア
ossfs 2.0.1 以降では、環境変数を使用して Resource Access Management (RAM) ユーザーのアクセスキーペアを設定して、OSS バケットをマウントできます。この方法は、より安全で便利です。環境変数で設定した認証情報は、設定ファイルで再度指定する必要はありません。
環境変数
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*************************
インスタンス 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>] の 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*************************
設定例
バケットのエンドポイントを確認するには、バケットページに移動し、対象のバケットを選択してから、左側メニューで 概要 をクリックします。エンドポイントは アクセスタイプ セクションに表示されます。以下の例では、中国 (杭州) リージョンのバケットを使用しています。
中国 (杭州) リージョンのバケットのエンドポイントは次のとおりです。パブリックエンドポイントは oss-cn-hangzhou.aliyuncs.com です。クラシックネットワークまたは Virtual Private Cloud (VPC) 内の Elastic Compute Service (ECS) インスタンスからのアクセス用の内部エンドポイントは oss-cn-hangzhou-internal.aliyuncs.com です。全世界のアップロードおよびダウンロード用の転送高速化エンドポイントは oss-accelerate.aliyuncs.com です。OSS アクセラレータエンドポイントは cn-hangzhou-internal.oss-data-acc.aliyuncs.com です。すべてのエンドポイントは HTTPS をサポートしています。
作成した 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 以降にのみ適用されます。
-
バケット内のすべてのディレクトリをローカルディレクトリにマウントし、マウントを実行したユーザー以外のアクセスを拒否します。
# バケットが配置されているリージョンのエンドポイント --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com # バケット名 --oss_bucket=bucketName # マウントユーザー以外のユーザーのアクセスを拒否 --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********************** -
バケット内のすべてのディレクトリをマウントし、特定のユーザー (
uidとgidで定義) に読み取りおよび書き込み権限を付与し、他のユーザーには読み取り専用権限を付与します。# バケットが配置されているリージョンのエンドポイント --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 のマウントオプションの詳細については、「マウントオプション」をご参照ください。