Misskeyで画像アップロード時のエラー対応

サーバ
スポンサーリンク

現在VPSでMisskeyを動かしているのですが、起動して画像をアップロードしようとしたところアップロードエラーが発生したのでその時の記録です。

エラー内容

画像をアップロードしようとすると以下のエラーが発生しました。

アップロード失敗
Internal error occurred. Please contact us if the error persists.
INTERNAL_ERROR
5d37dbcb-891e-41 ca-a3d6-
e690c97775аc

キャッシュクリアや再起動をかけても治りませんでした。

ログの確認

Dockerで動かしているため、以下のコマンドでログを確認します。

docker logs <misskey_container_name>

ログは以下のように出ました(一部を抜粋)

Error: EACCES: permission denied, copyfile '/tmp/tmp-127-1KiAiufYfuwN' -> '/misskey/files/61e61da7-02df-4c0b-b898-d0ecd5f27846'
    at Module.copyFileSync (node:fs:3004:11)
    at InternalStorageService.saveFromPath (file:///misskey/packages/backend/built/core/InternalStorageService.js:43:12)
    at DriveService.save (file:///misskey/packages/backend/built/core/DriveService.js:188:53)
    at async DriveService.addFile (file:///misskey/packages/backend/built/core/DriveService.js:516:20)
    at async file:///misskey/packages/backend/built/server/api/endpoints/drive/files/create.js:116:35
    at async ApiCallService.call (file:///misskey/packages/backend/built/server/api/ApiCallService.js:388:20) {
  errno: -13,
  code: 'EACCES',
  syscall: 'copyfile',
  path: '/tmp/tmp-127-1KiAiufYfuwN',
  dest: '/misskey/files/61e61da7-02df-4c0b-b898-d0ecd5f27846'
}

上記ログからファイルを保存しようとしたときに、ファイルシステムのアクセス権限に問題があると考えられます。

結論から言うと今回はこれが原因でした。

解決策

以下のコマンドでコンテナに入ります。

docker exec -u root -it <misskey_container_name> /bin/bash

コンテナ内に入ったら権限を確認します。

ls -ld /misskey/files

上記コマンドからrootユーザーにのみしか権限が与えられていなかったのでmisskeyユーザーに権限を付与します。

chown -R misskey:misskey /misskey/files
chmod -R 755 /misskey/files

権限を付与したらコンテナを再起動させます。

docker restart <misskey_container_name>

これでアップロードが出来るようになったと思います。

コメント

タイトルとURLをコピーしました