본문 바로가기
Nodejs

[Nodejs] IPFS 이미지 업로드

by teamnova 2024. 1. 24.
728x90

안녕하세요. 오늘은 IPFS에 이미지를 등록하고 해당 이미지가 잘 저장되었는지 확인해 보겠습니다. 

우선 IPFS에 대해 간단하게 설명드리면 분산 파일 시스템으로, 전통적인 중앙 집중식 파일 시스템과는 대조적으로 분산 환경에서 작동합니다. IPFS는 중복되는 데이터를 최소화하고 빠른 속도와 안정성을 제공하며, 파일을 유일한 해시 값으로 참조하는 방식으로 동작합니다.

 

우선 npm을 통해 fs, ipfs-http-client, buffer를 설치해주고 아래 코드를 입력해주세요.

ProjectID와 Secret키는 ipfs.infura.io에 가입하시고 발급받아주세요.


import fs  from 'fs';
import  {create}  from 'ipfs-http-client'
import  {Buffer}  from 'buffer'

const projectId = 'projectId';
const projectSecret = 'Secret';
const auth = 'Basic ' + Buffer.from(projectId + ':' + projectSecret).toString('base64');
const client = create({
    host: 'ipfs.infura.io',
    port: 5001,
    protocol: 'https',
    headers: {
        authorization: auth,
    },
});
async function UploadIPFS(){
        console.log("이미지 생성 중");


        const pathToSaveImage = '이미지 파일 경로';
        console.log(pathToSaveImage)
        const readFile = fs.readFileSync(pathToSaveImage); // ipfs에 올릴 사진
   
        const uploadResult = await client.add(readFile)
        console.log(uploadResult.path)

}

UploadIPFS();

위 코드를 다 작성하셨으면 실행해주세요. 로그로 해시값이 나올것입니다.

https://ipfs.io/ipfs/출력된 해쉬값

위 링크를 통해 업로드한 이미지를 확인할 수 있을겁니다! 감사합니다.