是否可以為 swarm 託管的目錄定義預設索引?
我已經使用 –recursive 標誌將我的首頁上傳到 swarm,即:
0 ✓ user@ursae ~/.src/github.com/5chdn $ swarm --recursive up co/ I0115 11:32:09.046878 upload.go:195] uploading file co/0x61f42a05.asc (3112 bytes) and adding path 0x61f42a05.asc I0115 11:32:09.050241 upload.go:195] uploading file co/favicon.png (330 bytes) and adding path favicon.png I0115 11:32:09.050961 upload.go:195] uploading file co/index.htm (3805 bytes) and adding path index.htm f1a669a425b378bd8034fe0df7fea098c8b932a6037b688764afda1e92a8db1e
現在,轉到bzz:/f1a669a425b378bd8034fe0df7fea098c8b932a6037b688764afda1e92a8db1e/給我以下資訊:
manifest entry for '' not found
但是導航到./index.htm可以按需要工作並顯示我的網站。即使是網站圖示也有效。
是否可以以某種方式創建該清單條目以告訴 swarm 預設顯示 index.htm?
當您從 swarm 控制台上傳時,您可以將預設條目作為第二個參數提供,如下所示:
bzz.upload('/path/to/dir/', ,'index.htm')
類似的功能被添加到
swarm up
使用swarm --index-file index.htm up --recursive /path/to/dir
並將擴展為允許多個目錄。
有關更多資訊,請參閱此 github 問題:https ://github.com/ethereum/go-ethereum/issues/3541
只是添加更多解釋:
您的網站位於清單文件描述的虛擬主機上。清單具有將路徑關聯到文件的條目。將空路徑與雜湊相關聯是完全合法的清單條目。
清單也可以被認為是文件系統上的路徑列表,例如目錄的遞歸內容。這種等效性使得有一種方法可以將目錄從磁碟上傳到 swarm 並下載它。
雖然有一個錯位。目錄本身不是文件,但仍應通過清單顯示為文件(例如,索引文件)。因此,當我們將目錄上傳到 swarm 時,應該有一些約定允許將資產作為 url 路徑關聯到目錄。
命令行工具實際上一直支持
--defaultpath
選項,其參數是當 urlpath 為空時顯示的文件的路徑(即,swarm 地址為 `bzz:///)。從https://github.com/ethereum/go-ethereum/issues/3541
swarm up
開始,將支持多級索引文件:名為 filename (toplevel arg) 的文件與空路徑(如果存在)相關聯。