¿Es posible definir un índice predeterminado para directorios alojados por swarm?

He subido mi página de inicio a swarm, usando la bandera --recursive, es decir:

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

Ahora, yendo a bzz:/f1a669a425b378bd8034fe0df7fea098c8b932a6037b688764afda1e92a8db1e/ me da el mensaje:

manifest entry for '' not found

Pero navegar a ./index.htm funciona como se desea y muestra mi sitio web. Incluso el favicon funciona.

¿Es posible crear esa entrada de manifiesto de alguna manera para decirle a Swarm que muestre el index.htm de forma predeterminada?

Respuestas (2)

Cuando carga desde la consola de enjambre, puede dar la entrada predeterminada como el segundo argumento de esta manera:

bzz.upload('/path/to/dir/', ,'index.htm')

Se está agregando una funcionalidad similar al swarm upuso

swarm --index-file index.htm up --recursive /path/to/dir

y se ampliará para permitir múltiples directorios.

Consulte este problema de github para obtener más información: https://github.com/ethereum/go-ethereum/issues/3541

Parece que este es un objetivo en movimiento. Ahora funciona con --defaultpath.

Solo agregando más explicación:

Su sitio web se encuentra en un host virtual descrito por un archivo de manifiesto. El manifiesto tiene entradas que asocian rutas a documentos. Asociar la ruta vacía a un hash es una entrada de manifiesto totalmente legítima.

Un manifiesto también se puede considerar como una lista de rutas en un sistema de archivos, por ejemplo, el contenido recursivo de un directorio. Esta equivalencia hace posible tener un método que sube un directorio del disco a swarm y otro que lo descarga.

Sin embargo, hay una desalineación. Los directorios en sí no son archivos, pero aun así deberían poder mostrarse a través del manifiesto como documentos (por ejemplo, archivos de índice). Entonces, cuando cargamos un directorio para swarm, debería haber alguna convención para permitir asociar activos a los directorios como rutas de URL.

La herramienta de línea de comandos en realidad siempre apoyó la --defaultpathopción cuyo argumento es una ruta a un archivo que se muestra cuando la ruta de URL está vacía (es decir, la dirección del enjambre es `bzz:///).

a partir de https://github.com/ethereum/go-ethereum/issues/3541 swarm up admitirá archivos de índice de varios niveles: el archivo llamado nombre de archivo (arg de nivel superior) está asociado con la ruta vacía, si existe.