Ya no necesitas investigar más por todo internet ya que estás al espacio perfecto, poseemos la solución que necesitas pero sin problema.
Solución:
Solo puedes hacerlo usando ipns después de descargarlo de nuevo con ipfs get
que debería ser rápido si todavía está anclado a su almacenamiento local:
(1) primero agregue (es decir, vuelva a agregar) su carpeta a ipfs recursivamente: ipfs add -r /path/to/folder
. La segunda columna de la última línea de salida estándar tiene el hash ipfs de la carpeta principal que acaba de agregar. (Los archivos originales siguen siendo los mismos, por lo que los valores hash también serán los mismos).
(2) luego publique ese hash: ipfs name publish /ipfs/
. Esto devolverá su ID de compañero, y puede compartir el enlace como /ipns/
; repita este paso (ipfs name publish
) cada vez que cambia el contenido de la carpeta (y, por lo tanto, el hash de la carpeta principal). El objeto ipns siempre apuntará a la última versión de su carpeta.
(3) si planea compartir mucho, puede crear un nuevo par de claves para cada carpeta que comparta: ipfs key gen --type=rsa --size=2048 new-share-key
… y luego usa eso key (en lugar de su valor predeterminado key) para publicar (y luego volver a publicar) esa carpeta: ipfs name publish --key=new-share-key /ipfs/
Consulte también la documentación aquí: https://ipfs.io/docs/commands/#ipfs-name-publish
Esto debería ser fácil con la API de archivos. Suponiendo que ya agregó el nuevo archivo a ipfs y obtuvo su hash, intente:
ipfs files cp /ipfs/QmExistingLargeFolderHash /folder-to-modify
ipfs files cp /ipfs/QmNewFileHash /folder-to-modify/new-file
Por supuesto, esto no agrega un archivo a una carpeta existente (porque las carpetas y los archivos son inmutables), solo crea una copia/nueva versión de la carpeta con un nuevo archivo agregado. Por lo tanto, tendrá un nuevo hash:
ipfs files stat /folder-to-modify
La API de archivos no ancla los archivos a los que se hace referencia ni recupera ninguna subcarpeta a menos que sea necesario, por lo que esto se puede hacer en cualquier nodo de la red sin incurrir en mucho tráfico.
[Edit]
Un rato después, me entero de que hay algunas cosas más que puedes hacer:
-
En vez de
ipfs files cp /ipfs/QmNewFileHash /folder-to-modify/new-file
puedes usar
ipfs files write -te
si aún no ha agregado el archivo a ipfs. - Puede habilitar funciones de escritura de la API HTTP para usar
PUT
solicitudes para obtener hashes de nuevas versiones de una carpeta. Ver esta entrada de blog. - Puede montar ipns a través de un fusible y escribir en
…/ipns/local
. - Y probablemente lo mejor: puedes usar
ipfs object patch add-link /ipfs/QmExistingLargeFolderHash new-file /ipfs/QmNewFileHash
para hacerlo en un solo paso
Si posees alguna incertidumbre o capacidad de avanzar nuestro tutorial eres capaz de realizar una glosa y con placer lo estudiaremos.