How to use the command 'ipfs' (with examples)
The ‘ipfs’ command is a powerful tool used for interacting with the Inter Planetary File System (IPFS), which is a peer-to-peer hypermedia protocol that aims to make the web more open. It allows users to upload and retrieve files, pin them locally, display pinned files, unpin files, and manage local storage.
Use case 1: Add a file from local to the filesystem, pin it and print the relative hash
Code:
ipfs add path/to/file
Motivation: This use case is helpful when you want to add a single file from your local system to the IPFS filesystem. By pinning it, you ensure that the file remains accessible even if you disconnect from the IPFS network. Printing the relative hash allows you to easily reference and share the file.
Explanation:
ipfs add
: This command is used to add a file or directory to the IPFS filesystem.path/to/file
: Specifies the path to the file you want to add.
Example output:
added QmXjgV5jneDte132bRCcLMTCHK6Va2y1dUDj1mE88EhJim path/to/file
Use case 2: Add a directory and its files recursively from local to the filesystem and print the relative hash
Code:
ipfs add -r path/to/directory
Motivation: This use case is useful when you want to add a directory and all its files to the IPFS filesystem. By using the recursive flag -r
, all files within the directory will be added, preserving the directory structure.
Explanation:
ipfs add
: This command is used to add a file or directory to the IPFS filesystem.-r
: The recursive flag is used to add the directory and its files recursively.path/to/directory
: Specifies the path to the directory you want to add.
Example output:
added QmXjgV5jneDte132bRCcLMTCHK6Va2y1dUDj1mE88EhJim path/to/directory/file1
added QmaKSy96x2z5waMB8BEYPg4EAQ6MuxPhhSX1TA9iMPsci1 path/to/directory/file2
added QmSzsT2s1FRXs7YbVY8h8o4zjD3ZaYThpzyC8wehKk2sAR path/to/directory/subdirectory/file3
Use case 3: Save a remote file and give it a name but not pin it
Code:
ipfs get hash -o path/to/file
Motivation: This use case is useful when you want to retrieve a specific file from the IPFS network but don’t want to pin it locally. Giving it a name allows you to save it with a specific filename.
Explanation:
ipfs get
: This command is used to retrieve a file or directory from the IPFS network.hash
: Specifies the hash of the file you want to retrieve.-o
: The output flag is used to specify the path and filename for the saved file.path/to/file
: Specifies the path and filename you want to save the file as.
Example output:
Saving file to path/to/file
Use case 4: Pin a remote file locally
Code:
ipfs pin add hash
Motivation: This use case is helpful when you want to ensure that a specific file remains accessible locally, even if it gets removed from the IPFS network. By pinning it, you can prevent the file from being garbage collected.
Explanation:
ipfs pin add
: This command is used to pin a file or directory locally.hash
: Specifies the hash of the file you want to pin.
Example output:
pinned QmXjgV5jneDte132bRCcLMTCHK6Va2y1dUDj1mE88EhJim
Use case 5: Display pinned files
Code:
ipfs pin ls
Motivation: This use case allows you to view all the files that are pinned locally. It can be useful for managing and organizing your pinned files.
Explanation:
ipfs pin ls
: This command is used to list all the pinned files and directories.
Example output:
QmXjgV5jneDte132bRCcLMTCHK6Va2y1dUDj1mE88EhJim recursive
Use case 6: Unpin a file from the local storage
Code:
ipfs pin rm hash
Motivation: This use case is helpful when you want to remove a file or directory from your local storage and no longer want it to be accessible. Removing the pin allows the file to be garbage collected if it is not pinned elsewhere.
Explanation:
ipfs pin rm
: This command is used to remove the pin on a file or directory.hash
: Specifies the hash of the file you want to unpin.
Example output:
unpinned QmXjgV5jneDte132bRCcLMTCHK6Va2y1dUDj1mE88EhJim
Use case 7: Remove unpinned files from local storage
Code:
ipfs repo gc
Motivation: This use case is useful when you want to clean up your local storage and remove all the files and directories that are no longer pinned. By running the garbage collection command, you can free up disk space.
Explanation:
ipfs repo gc
: This command is used to perform garbage collection on the IPFS repository.
Example output:
removed QmXjgV5jneDte132bRCcLMTCHK6Va2y1dUDj1mE88EhJim