Storage

是否可以為 swarm 託管的目錄定義預設索引?

  • January 15, 2017

我已經使用 –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) 的文件與空路徑(如果存在)相關聯。

引用自:https://ethereum.stackexchange.com/questions/11397