すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ossfs を使用して、Linux オペレーティングシステムのローカルディレクトリに OSS バケットをマウントする

最終更新日:Feb 15, 2025

ossfs を使用すると、Linux オペレーティングシステムのローカルディレクトリに Object Storage Service (OSS) バケットをマウントできます。このようにして、アプリケーションは、ローカルリソースにアクセスするのと同じ方法でバケット内のリソースにアクセスできます。マウント機能は、リソースの共有を容易にします。

前提条件

OSS が有効化され、OSS バケットが作成されていること。詳細については、「OSS を使い始める」および「バケットを作成する」をご参照ください。

インストール

ダウンロードリンク

次の表に、一般的に使用される Linux ディストリビューションの ossfs インストーラパッケージへのダウンロードリンクを示します。別のディストリビューションで ossfs を使用する場合は、ソースコードのコンパイルが必要です。

Linux ディストリビューション

リンク

Ubuntu 22.04 (x64)

ossfs_1.91.5_ubuntu22.04_amd64.deb

Ubuntu 20.04 (x64)

ossfs_1.91.5_ubuntu20.04_amd64.deb

Ubuntu 18.04 (x64)

ossfs_1.91.5_ubuntu18.04_amd64.deb

Ubuntu 16.04 (x64)

ossfs_1.91.5_ubuntu16.04_amd64.deb

Ubuntu 14.04 (x64)

ossfs_1.91.5_ubuntu14.04_amd64.deb

CentOS 8.0 (x64)

ossfs_1.91.5_centos8.0_x86_64.rpm

CentOS 7.0 (x64)

ossfs_1.91.5_centos7.0_x86_64.rpm

Anolis8/Alibaba Cloud Linux 3

ossfs_1.91.5_alinux3_x86_64.rpm

Anolis7/Alibaba Cloud Linux 2

ossfs_1.91.5_alinux2_x86_64.rpm

インストール手順

  1. 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 を必要なパッケージの名前に置き換えます。

  2. アップロードされたオブジェクトのコンテンツタイプとファイル名拡張子が一致するようにするには、 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
  3. ossfs --version コマンドを実行して、ossfs のバージョン情報を表示します。次の出力は、ossfs がインストールされていることを示しています。

    image

バケットをマウントし、バケット内のデータにアクセスする

  1. ローカルディレクトリにマウントするバケットを選択します。

    説明

    低頻度アクセス(IA)バケット、またはアーカイブオブジェクトのリアルタイムアクセスが有効になっているバケットをローカルディレクトリにマウントすることはお勧めしません。これは、ローカルディレクトリから前述のバケットにオブジェクトをアップロードすると、2 つのアップロードリクエストが開始される可能性があるためです。最初のリクエストは 0 バイトのオブジェクトを作成し、2 番目のリクエストは実際のデータをバケット内のオブジェクトにアップロードします。 0 バイトのオブジェクトに対して、IA またはアーカイブストレージタイプに基づいて 64 KB の 30 日間のストレージ料金が発生します。これは予期しないストレージコストにつながります。

  2. バケットへのアクセスに使用するアカウント情報を構成します。

    次の情報を /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
  3. バケットを指定されたディレクトリにマウントします。

    説明

    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 インスタンスと宛先バケットが同じリージョンにある必要があります。詳細については、「リージョンとエンドポイント」をご参照ください。

  4. ローカルファイルシステムからバケット内のオブジェクトを読み取ります。

    1. バケット内のオブジェクトのリストを照会します。

      sudo ls -lh /tmp/ossfs

      image

      説明

      ディレクトリのリスト などのメタデータ関連の操作には、OSS へのリモートアクセスが含まれ、特定レベルの待機時間があります。

    2. バケットからオブジェクトをコピーします。

      sudo cp /tmp/ossfs/bird.jpeg /root
    3. オブジェクトをバケットにアップロードします。

      sudo cp /root/forest.jpeg /tmp/ossfs

      前述のコマンドは、forest.jpeg ファイルをローカルルートディレクトリからマウントされたバケットにアップロードするために使用されます。

      image

      説明

      アップロードが中断され、再開されない場合、オブジェクトのアップロードされたデータはパーツとしてバケットに保存されます。追加のストレージ料金を防ぐために、不要になったこれらのパーツを削除するには、次のいずれかの方法を使用することをお勧めします。

  5. バケットをマウントする必要がなくなった場合は、次のコマンドを実行してバケットをアンマウントします。

    sudo fusermount -u /tmp/ossfs

参考資料

  • ossfs の構成方法の詳細については、「詳細設定」をご参照ください。

  • ossfs オプションの詳細については、「共通オプション」をご参照ください。

  • ossfs についてよく寄せられる質問については、「FAQ」をご参照ください。