2016-10-01 32 views

答えて

6
あなたは、それはまだあなたのローカルストレージに固定だ場合は高速である必要がありますされ、 ipfs getで再びそれをダウンロードした後 IPNSを使用することによってそれを行うことができるだけで

(1)最初に追加します(つまり、再追加)あなたをipfsに再帰的にフォルダ:ipfs add -r /path/to/folder。最後のstdout行の2番目の列には、追加したばかりの親フォルダのipfsハッシュがあります。 (元のファイルは同じなので、ハッシュも同じになります)。

(2)次に、そのハッシュを公開します。ipfs name publish /ipfs/<CURRENT_PARENTFOLDER_HASH>。これにより、ピアIDが返され、リンクを/ipns/<PEER_ID>として共有できます。フォルダの内容(したがって親フォルダのハッシュ)が変更されるたびにこの手順(ipfs name publish)を繰り返します。 ipnsオブジェクトは、常に最新のバージョンのフォルダを指します。

(3)多くの共有を計画している場合は、共有するフォルダごとに新しい鍵ペアを作成することができます。ipfs key gen --type=rsa --size=2048 new-share-key ...その鍵を(既定の鍵の代わりに)使用して、そのフォルダを公開します:ipfs name publish --key=new-share-key /ipfs/<CURRENT_PARENTFOLDER_HASH>

はここにもマニュアルを参照してください:https://ipfs.io/docs/commands/#ipfs-name-publish

0

いいえ、できません。 IPFSの背後にあるコンセプトは不変です。フォルダは単なるファイルのツリーなので、フォルダを追加した後でファイルを「追加」することはできません。

1

これは、ファイルAPIを使用して簡単にする必要があります。すでにIPFSに新しいファイルを追加し、そのハッシュを取得していると仮定すると、試してみてください。

ipfs files cp /ipfs/QmExistingLargeFolderHash /folder-to-modify 
ipfs file cp /ipfs/QmNewFileHash /folder-to-modify/new-file 

(フォルダやファイルは不変であるため)もちろんこれは、既存のフォルダにファイルを追加しませんが、それだけでコピーが作成されます/新しいファイルが追加されたフォルダの新しいバージョン。

ipfs files ls -l/# to get the new hash of the folder 

ファイルのAPIが参照されているファイルをピンまたは必要な場合を除き任意のサブフォルダを取得するので、これは、大量のトラフィックを発生させることなく、ネットワーク内の任意のノード上で行うことができません。したがって、それは新しいハッシュを持つことになります。

[編集] しばらく後に、私はあなたが行うことができますいくつかのより多くの事があることを学ぶ:

  • 代わりの

    ipfs file cp /ipfs/QmNewFileHash /folder-to-modify/new-file 
    

    あなたがいない場合は、ipfs files write -teを使用することができますが、 ipfsにファイルを追加しました。

  • HTTP APIの書き込み機能を有効にして、PUT要求を使用して、新しいバージョンのフォルダのハッシュを取得できます。 this blogpostを参照してください。
  • fuse経由でipnsをマウントし、…/ipns/localに書き込むことができます。
  • おそらく最高です:ipfs object patch add-link /ipfs/QmExistingLargeFolderHash new-file /ipfs/QmNewFileHashを使用して1ステップで実行できます
関連する問題