nazo6 notememo

Windowsでtauriのscopeを許可しているのに許可されていないと出る

作成:2024/01/07

更新:2024/01/07

tauri.conf.jsonで
conf.json
"protocol": {
"asset": true,
"assetScope": ["**", "*"]
}
と指定しているのに実際読み込んでみるとasset protocol not configured to allow the path:のエラーが出る。
調べてみたところ思ったより根深そうだったのでメモ。

原因

原因は、今回assetで読み込もうとしていた場所がrcloneでマウントした場所だったことのようだ。そのようなドライブを読み込もうとすると

tauri/core/tauri/src/scope/fs.rs at 97e334129956159bbd60e1c531b6acd3bc6139a6 · tauri-apps/tauri

Build smaller, faster, and more secure desktop applications with a web frontend. - tauri-apps/tauri

github.com

の場所でstd::fs::canonicalize
std::fs::canonicalize(path) = Err(
Os {
code: 1005,
kind: Uncategorized,
message: "このボリュームは認識可能なファイル システムではありません。\r\n必要なファイル システム ドライバーがすべて読み込まれているか、ボリュームが壊れていないか確認してください。",
},
)
というエラーで失敗する。
rcloneというより内部で使われているWinFSPが問題っぽい。

Crash on open File with Cryptomator · Issue #16752 · spyder-ide/spyder

Description What steps will reproduce the problem? Used latest Cryptomator with WinFSP via the FUSE Option to mount my Data. Tried to open File from the mounted Drive in Spyder 5.0.5. -> Spyder cra...

github.com

対策

rcloneでマウントするのは変えるのが難しいのでtauriのほうでなんとかしたい。
とりあえずstd::fs::canonicalizeを使わないようにしたカスタムプロトコルを作って対処できそう。
セキュリティ的に若干問題ありそうだけど今回は読み取りオンリーのassetなのでまあよしとする