SmallIPFS: a Smalltalk Interplanetary File System API – Part 4

ipfs-istambul

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="file"; filename="file.txt"\r\n\r\nfile.txt content--a831rwxi1a3gzaorw1w2z49dlsor--' --compressed

ipfs-add-file-with-curl

Comando “add” em Smalltalk

pharo-ipfs-add

pharo-ipfs-rawadd

pharo-ipfs-command

O comando add: foi implementado usando PipeableOSProcess em vez de Zinc como nos outros casos (na verdade não consegui ainda usando o Zinc emular o comando cUrl).

Exemplo de uso

O comando #rawAdd: 

pharo-ipfs-example5

Resultado exibido

pharo-ipfs-example5-transcript

Retorno estruturado

O comando #add: 

pharo-ipfs-example6

O resultado é o mesmo mas estruturado como um Dictionary:

pharo-ipfs-example6-transcript

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

Próximo post.

Todos os posts.

 

 

Anúncios

2 comentários

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 )

Foto do Google+

Você está comentando utilizando sua conta Google+. 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 )

w

Conectando a %s