それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

mattermost でファイルのアップロードができない。

ファイルアップロードで失敗する

mattermostでファイルをアップロードしようとすると、アップロードで止まってしまう。

{
"create_post.fileProcessing": "処理しています...",
}

処理していますは、とmattermostのソースコードで日本語化ファイルをみる"create_post.fileProcessing": が相当することがわかる。"create_post.fileProcessing" でmattermostのフォーラムを探し回ると、mattermost側の設定とnginx側の設定の話が出てくる。

ログを見てみると、nginx がエラー

Too Larget なので制限超過ですね。

ファイルアップロードといえば、nginx の client_max_body_size だと思うんだけど。どこだろう。

nginx の構成

うちは、nginx は多段構成になっている。

gw -> nginx (main) -> nginx(gitlab-mattermost)

gitlab 内蔵のnginxではなく、その手前において仕分けてる nginx 側に問題がありそう。

after

以前は、location /api の内部に client_max_body_size を記入していて問題なかったが、最近のアップデートで、api/*/websocket 以外でアップロードしている気がする。公式の設定サンプルを見ると、location /location /api両方max size が記入されている。なるほど。だったら共通なので外側に出せばいいですよね。

server {
  ## 略
  ## これらを location 外部へ
  client_max_body_size 50M;
  client_body_timeout 60;
  server_name mm.example.tld;
  ## 略
  location ~ /api/v[0-9]+/(users/)?websocket$ {
     ## 略
  }
  location / {
     ## 略
  }
}

再起動

sudo gitlab-ctl restart nginx
sudo gitlab-ctl restart mattermost

アップロードできた

無事にアップロードできた。