SmallIPFS: a Smalltalk Interplanetary File System API – Part 4

pharo-chapo_vignettedecks

 

 

 

 

 

Neste post vamos iniciar a implementação do comando “add:”. Primeiramente vamos implementar para um único arquivo. As outras modalidades serão implementadas mais adiante. Veja abaixo a ajuda do comando:

ipfs-add-command-help

add: na linha de comando

ipfs-add-file-command-line

O comando ipfs add <file-path> devolve um hash: QmRTtvzZTrgYtGZ1hFDSAVYvpQMonwmDSZBZ4HNpNHTy3K.

hash é um digest do conteúdo do arquivo. O comando ipfs cat <hash> serve para recuperar o conteúdo (Veja na imagem acima). Este comando já foi implementado no primeiro post.

Comando cURL para adicionar um arquivo

O comando é baseado no que pode ser encontrado em  IPFS API wrapper library in JavaScript | Tooling | add.

curl 'http://localhost:5001/api/v0/add?stream-channels=true' \
-H 'content-type: multipart/form-data; boundary=a831rwxi1a3gzaorw1w2z49dlsor' \
-H 'Connection: keep-alive' \
--data-binary $'--a831rwxi1a3gzaorw1w2z49dlsor\r\nContent-Type: application/octet-stream\r\nContent-Disposition: file; name=&amp;amp;amp;amp;amp;quot;file&amp;amp;amp;amp;amp;quot;; filename=&amp;amp;amp;amp;amp;quot;file.txt&amp;amp;amp;amp;amp;quot;\r\n\r\nfile.txt content--a831rwxi1a3gzaorw1w2z49dlsor--' --compressed

ipfs-add-file-with-curl

Comando “add” em Smalltalk

ipfs-add-smalltalk-method

O comando add: foi implementado usando SocketStream em vez de Zinc.

Exemplo de uso

ipfs-add-example

Resultado exibido

ipfs-add-transcript

Arquivo em subdiretório

Vamos copiar o arquivo file.txt, sem mudar o seu conteúdo, no subdiretório test/subdir e criar outro exemplo:

ipfs-add-example2

O resultado:

ipfs-add-transcript2

Note que o “Name” mudou mas o “Hash”é o mesmo já que corresponde a um “digest” do mesmo conteúdo.

Próximo post (brevemente).

Todos os posts.

 

 

Anúncios

Uma resposta para “SmallIPFS: a Smalltalk Interplanetary File System API – Part 4

  1. Pingback: SmallIPFS: a Smalltalk Interplanetary File System API – Part 3 | Crab Log

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s