ossfs を使用すると、Linux オペレーティングシステムのローカルディレクトリに Object Storage Service (OSS) バケットをマウントできます。このようにして、アプリケーションは、ローカルリソースにアクセスするのと同じ方法でバケット内のリソースにアクセスできます。マウント機能は、リソースの共有を容易にします。
前提条件
OSS が有効化され、OSS バケットが作成されていること。詳細については、「OSS を使い始める」および「バケットを作成する」をご参照ください。
インストール
ダウンロードリンク
次の表に、一般的に使用される Linux ディストリビューションの ossfs インストーラパッケージへのダウンロードリンクを示します。別のディストリビューションで ossfs を使用する場合は、ソースコードのコンパイルが必要です。
Linux ディストリビューション | リンク |
Ubuntu 22.04 (x64) | |
Ubuntu 20.04 (x64) | |
Ubuntu 18.04 (x64) | |
Ubuntu 16.04 (x64) | |
Ubuntu 14.04 (x64) | |
CentOS 8.0 (x64) | |
CentOS 7.0 (x64) | |
Anolis8/Alibaba Cloud Linux 3 | |
Anolis7/Alibaba Cloud Linux 2 |
インストール手順
ossfs をインストールします。
重要コマンドを使用してソフトウェアパッケージをダウンロードする場合は、特定の形式でソフトウェアパッケージの URL を入力する必要があります。 CentOS 7.0 (x64) のソフトウェアパッケージをダウンロードする場合に入力する URL の形式の例を、次のコードに示します。
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_centos7.0_x86_64.rpm
Ubuntu
Ubuntu 16.04 (x64) に ossfs をインストールするには、次のコマンドを順番に実行します。
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_ubuntu16.04_amd64.deb sudo apt-get update sudo apt-get install gdebi-core sudo gdebi ossfs_1.91.5_ubuntu16.04_amd64.deb
CentOS、Anolis、または Alibaba Cloud Linux
CentOS 7.0 (x64) に ossfs をインストールするには、次のコマンドを実行します。
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_centos7.0_x86_64.rpm sudo yum install ossfs_1.91.5_centos7.0_x86_64.rpm
クライアントが Yellowdog Updater, Modified (YUM) を使用して RPM パッケージをインストールする場合、クライアントノードのネットワーク環境要因により、YUM を使用して依存関係をダウンロードできない場合があります。この問題を解決するには、通常のネットワーク経由で YUM を使用して、同じオペレーティングシステムバージョンを実行しているノードに依存関係をダウンロードし、それらの依存関係を必要なノードにコピーします。たとえば、ossfs は FUSE 2.8.4 以上で実行されます。次のコマンドを実行して、YUM ソースからローカルデバイスに最新バージョンの FUSE をダウンロードします。
sudo yum install --downloadonly --downloaddir=./ fuse
重要他の依存関係をダウンロードするには、FUSE を必要なパッケージの名前に置き換えます。
アップロードされたオブジェクトのコンテンツタイプとファイル名拡張子が一致するようにするには、 mime.types ファイルを追加します。 ossfs は /etc/mime.types 内のコンテンツをクエリして、オブジェクトのコンテンツタイプを設定します。
mime.types ファイルを追加しないと、OSS はデフォルトでアップロードされたオブジェクトのコンテンツタイプを application/octet-stream に設定します。
mime.types ファイルを追加するには、次のコマンドを実行します。
Ubuntu
mime.types ファイルを追加するには、次のコマンドを実行します。
sudo apt-get install mime-support
CentOS、Anolis、または Alibaba Cloud Linux
mime.types ファイルを追加するには、次のコマンドを実行します。
sudo yum install mailcap
ossfs --version
コマンドを実行して、ossfs のバージョン情報を表示します。次の出力は、ossfs がインストールされていることを示しています。
バケットをマウントし、バケット内のデータにアクセスする
ローカルディレクトリにマウントするバケットを選択します。
説明低頻度アクセス(IA)バケット、またはアーカイブオブジェクトのリアルタイムアクセスが有効になっているバケットをローカルディレクトリにマウントすることはお勧めしません。これは、ローカルディレクトリから前述のバケットにオブジェクトをアップロードすると、2 つのアップロードリクエストが開始される可能性があるためです。最初のリクエストは 0 バイトのオブジェクトを作成し、2 番目のリクエストは実際のデータをバケット内のオブジェクトにアップロードします。 0 バイトのオブジェクトに対して、IA またはアーカイブストレージタイプに基づいて 64 KB の 30 日間のストレージ料金が発生します。これは予期しないストレージコストにつながります。
バケットへのアクセスに使用するアカウント情報を構成します。
次の情報を /etc/passwd-ossfs ファイルに書き込みます。バケット名と、バケットへのアクセス権限を持つ RAM ユーザーの AccessKey ペア(AccessKey ID と AccessKey シークレット)。次に、ファイルの権限を 640 に設定します。
sudo sh -c 'echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs' ### ルートユーザーロールを使用する場合は、次のコマンドを実行します。### # echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs sudo chmod 640 /etc/passwd-ossfs
BucketName、yourAccessKeyId、yourAccessKeySecret を実際のバケット名、AccessKey ID、AccessKey シークレットに置き換えます。例:
sudo sh -c 'echo bucket-test:LTAI************:MOk8x0y9hx******************** > /etc/passwd-ossfs' sudo chmod 640 /etc/passwd-ossfs
バケットを指定されたディレクトリにマウントします。
説明ossfs を使用してバケットを指定されたディレクトリにマウントした後、データアクセスセキュリティを確保するために、正しいアカウント情報とアクセス権限を構成することをお勧めします。詳細については、「ossfs の構成とマウント」をご参照ください。さらに、「ベストプラクティス」のソリューションは、ossfs の熟練ユーザーがユーザーエクスペリエンスを向上させることを目的としています。
sudo ossfs <BucketName> <mountfolder> -o url=<Endpoint>
bucket-test
という名前のバケットを中国(杭州)リージョンから/tmp/ossfs
ディレクトリにマウントするには、次のコマンドを実行します。sudo mkdir /tmp/ossfs sudo ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-hangzhou-internal.aliyuncs.com
重要データを読み取るときに発生するトラフィックコストを削減するために、Elastic Compute Service(ECS)インスタンスに ossfs をデプロイし、-o url を使用して、内部エンドポイントを使用して宛先バケットにアクセスするように指定することをお勧めします。この例では、内部エンドポイントは http://oss-cn-hangzhou-internal.aliyuncs.com です。内部エンドポイントを使用するには、ECS インスタンスと宛先バケットが同じリージョンにある必要があります。詳細については、「リージョンとエンドポイント」をご参照ください。
ローカルファイルシステムからバケット内のオブジェクトを読み取ります。
バケット内のオブジェクトのリストを照会します。
sudo ls -lh /tmp/ossfs
説明ディレクトリのリスト などのメタデータ関連の操作には、OSS へのリモートアクセスが含まれ、特定レベルの待機時間があります。
バケットからオブジェクトをコピーします。
sudo cp /tmp/ossfs/bird.jpeg /root
オブジェクトをバケットにアップロードします。
sudo cp /root/forest.jpeg /tmp/ossfs
前述のコマンドは、
forest.jpeg
ファイルをローカルルートディレクトリからマウントされたバケットにアップロードするために使用されます。説明アップロードが中断され、再開されない場合、オブジェクトのアップロードされたデータはパーツとしてバケットに保存されます。追加のストレージ料金を防ぐために、不要になったこれらのパーツを削除するには、次のいずれかの方法を使用することをお勧めします。
パーツを手動で削除します。詳細については、「パーツの削除」をご参照ください。
ライフサイクルルールを構成して、パーツを自動的に削除します。詳細については、「最終変更時刻に基づくライフサイクルルール」をご参照ください。
バケットをマウントする必要がなくなった場合は、次のコマンドを実行してバケットをアンマウントします。
sudo fusermount -u /tmp/ossfs