This is a submission for the The Pinata Challenge
What I Built
I’ve built a decentralized file storage system using Pinata and IPFS, designed to securely manage files in a distributed network. This system allows users to upload files, which are then stored on IPFS, a decentralized storage network. Each file receives a unique Content Identifier (CID), making it easy to retrieve and manage.
Key features include:
User Authentication: Only registered users can upload files and access stored data. A secure login system ensures that all user data is protected.
Decentralized Storage: Files are uploaded via Pinata to IPFS, ensuring they are stored in a decentralized, resilient network.
File Management: Once uploaded, users can retrieve their CIDs, allowing them to access or share their files at any time.
This system is ideal for anyone looking to leverage the benefits of decentralized storage, providing privacy, security, and independence from traditional, centralized platforms.
Demo
My Code
A decentralized file storage system using Pinata and IPFS, designed to securely manage files in a distributed network. This system allows users to upload files, which are then stored on IPFS, a decentralized storage network. Each file receives a unique Content Identifier (CID), making it easy to retrieve and manage.
Key features include:
User Authentication: Only registered users can upload files and access stored data. A secure login system ensures that all user data is protected.
Decentralized Storage: Files are uploaded via Pinata to IPFS, ensuring they are stored in a decentralized, resilient network.
File Management: Once uploaded, users can retrieve their CIDs, allowing them to access or share their files at any time.
This system is ideal for anyone looking to leverage the benefits of decentralized storage, providing privacy, security, and independence from traditional, centralized platforms.
More Details
In this project, Pinata is used to manage decentralized file storage through IPFS (InterPlanetary File System). The integration is implemented to allow users to upload files securely and retrieve them using their corresponding IPFS Content Identifiers (CIDs). Here's a brief overview of how Pinata is utilized:
File Upload: When a user uploads a file through the frontend, the file is sent to Pinata using their API. Pinata stores the file on the IPFS network and returns a CID, which is a unique identifier for the file.
CID Management: The CID is stored in a JSON file on the server (with user authentication). The backend, built with Express.js, ensures that each user has a list of CIDs associated with their account, allowing them to easily access and retrieve their uploaded files.
File Retrieval: Users can view their stored CIDs and retrieve their files by requesting them via the IPFS gateway or Pinata's restricted URL. Pinata enables access to these files directly from the decentralized network, ensuring the files remain accessible even after uploading.
In essence, Pinata provides the decentralized infrastructure for uploading, storing, and retrieving files, while the backend and frontend handle user management and interaction with the IPFS network. This integration ensures secure, decentralized file storage and access for users in the project.