2017/05/09

[Mastodon]外部ストレージに変更するとアイコンが消える問題の解決方法


追記)
この件に関してはプルリクがすでに送られているようです。v1.3.3 はまだですが、次のバージョンで対応されるかもしれません。
https://github.com/tootsuite/mastodon/pull/2292

-----

最近、Mastodon 流行っていますね。みなさん楽しんでいますか?

私はインスタンスを何度か壊して泣きそうです(笑)。

さて、Mastodon のインスタンスを運営していると画像がハードディスクの容量を圧迫してくるようになりますね。

それで Amazon S3 か、S3 互換ストレージという外部ストレージを利用するようになると思うのですが、その時問題になるのが、アイコンや画像のアドレスが変わってしまい消えてしまうことです。

この問題は知っていれば割り合い簡単に解決できるのですが、適当なツールをなかなか見つけられず私は非常に苦労しました。ですので、みなさんにはこの問題で困らないようにしたいと思います。

なお、クライアント環境は Mac で、利用しているオブジェクトストレージサービスは「さくらのオブジェクトストレージ」になります。

 

まず知っておきたいのは、アイコンやヘッダー画像はどこに保存されているのかということです。

答えは、以下のディレクトリになります。

/home/mastodon/live/public/system/accounts

このディレクトリの配下に avatars、headers ディレクトリがあり、この中にアイコンやヘッダー画像が保存されています。

通常はこのままで問題ないのですが、.env.production ファイルで S3 の設定を行うと、S3 の設定先をインスタンスは見に行くようになるのでアイコンが非表示になる訳です。

じゃあ、どうしたらいいかというと、この accounts ディレクトリをまるっと S3、S3 互換ストレージにある accounts ディレクトリに上書きしてしまえばよいのです。存在しないファイルはコピーになるので問題ありません。但し、ツールによってディレクトリを置き換えるという動作をするかもしれないのでその点は注意してください。

さて、まずは自分の Mastodon インスタンスから accounts ディレクトリをサブディレクトリごとまるっとダウンロードしてきます。Mac なら無料の Cyberduck でもいいですし、私のように有料の ForkLift のような SFTP をサポートしているツールでダウンロードしてきます。

ダウンロードは簡単なのですが、Amazon S3 や S3 互換ストレージに問題なくアップロードできるツールは少ないです。S3 互換ストレージはなおさらです。少なくとも、さくらのオブジェクトストレージはツールを見つけるのに苦労しました。

それで見つけたツールが「Transmit」というツールです。AppStoreで購入すると4100円しますが、サイトに行くと1週間の体験版を入手することができますので、これを利用しましょう。ここまでのツールはないので、購入してもよいのではないでしょうか。

さて、では Amazon S3 や S3互換ストレージのさくらのオブジェクトストレージでどのように接続するかというと以下のように指定して「接続」をクリックします。

Transmit

 

すると以下のようにバケットの下に accounts ディレクトリがあるので、インスタンスからダウンロードした accounts ディレクトリを上書きします。これでアイコンやヘッダー画像が表示されるようになります。

S301

 

じゃあ、アップロードした画像はどうかというと、試してはいないのですが以下のディレクトリ配下に保存されていると思います。アイコンと同じ要領でダウンロードとアップロードすれば表示されるようになるのではないでしょうか。

/home/mastodon/live/public/system/media_attachments

ただ、過去の画像については容量も大きいし、辿ってみることも少ないので見切りをつけてもよいと思いますけどね。

これで安心して外部ストレージに移行できますね。

この記事がお役に立てば幸いです。


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

この問題についてマスタドンにプルリクを送っています。
rakeタスク一発でリモートのアバターとヘッダーについては再取得できますのでよろしければ取り込んでお使いください
https://github.com/tootsuite/mastodon/pull/2292

>>プルリク送っていますさん
プルリクを送ってくれたのですか。ありがとうございます。
たくさんの人が助かると思います。となると、v1.3.3の次のバージョンで使えることになりそうですね。
楽しみに待っています。記事も修正します。

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから