-
React를 사용하여 IPFS infura.io에 파일을 업로드하는 방법.프로그래밍 2022. 11. 24. 10:26반응형
infura가 퍼블릭 게이트웨이의 가치를 떨어뜨린 후 많은 개발자가 IPFS infura에 파일을 업로드하는 동안 문제에 직면합니다.
우리가 할 일.
- infura 계정을 만들고 설정합니다.
- 우리는 IPFS에 파일을 업로드할 것입니다
- 우리는 IPFS에서 콘텐츠에 액세스합니다.
infura 계정 설정.
공식 웹사이트 infura.io 로 이동하여 생성 및 서명 후 계정이 없는 경우 새 계정을 생성하고 새 키 생성 을 클릭합니다 .
네트워크 IPFS를 선택하고 원하는 프로젝트 이름을 언급하고 생성하십시오.
여기에서 프로젝트 비밀 키, API 키 비밀 및 IPFS 엔드포인트에 다음 자격 증명이 표시되면 여기에서 원하는 또 다른 사항은 전용 게이트웨이 도메인 링크이므로 전용 게이트웨이 옵션을 활성화하여 얻을 수 있습니다. 원하는 도메인 이름을 입력하고 도메인을 저장합니다.
이제 계정을 설정했으며 이제 전용 게이트웨이가 생겼습니다. 나중에 프로젝트에서 이 모든 자격 증명을 사용할 것입니다.
프로젝트의 IPFS에 파일을 업로드하는 방법.
React 프로젝트에는 ipfs-http-client라는 npm 패키지가 필요합니다. 이 명령을 사용하여 설치하세요.
npm i ipfs-http-client
반응 프로젝트에서 App.js 파일을 열고 에서 제공 하는 ipfs-http-client we are importing create기능을 가져오고 반응 프로젝트에서 infura 자격 증명을 설정합니다.ipfsHttpClientipfs-http-client
import { create as ipfsHttpClient } from "ipfs-http-client";
App.js 구성 요소에 infura 키를 추가 base64하면 기능을 사용하여 키를 생성하여 권한 부여 키를 생성하는 데 사용할 것입니다.btoaconst projectId = "<YOUR PROJECT ID>"; const projectSecret = "<YOUR PROJECT SECRET>"; const authorization = "Basic " + btoa(projectId + ":" + projectSecret);
참고: 더 안전한 대안을 위해 환경 변수를 자유롭게 사용하십시오.
이제 우리는 함수 ipfs에 의해 반환되는 ipfs http 클라이언트를 저장할 변수를 생성할 것 입니다. include 함수 create에 인수를 전달 하고 include create url headers authorization
const ipfs = create({ url: "https://ipfs.infura.io:5001/api/v0", headers:{ authorization } })
IPFS 와 연결을 설정한 후 입력 양식에서 파일을 업로드합니다.
<div className="App"> {ipfs && ( <> <h3>Upload file to IPFS</h3> <form onSubmit={onSubmitHandler}> <input type="file" name="file"/> <button type="submit">Upload file</button> </form> </> )} </div>
onSubmitHandler모든 구현을 처리하는 주요 기능으로 코드를 작성할 수 있습니다.
const onSubmitHandler = async (event) => { event.preventDefault(); const form = event.target; const files = (form[0]).files; if (!files || files.length === 0) { return alert("No files selected"); } const file = files[0]; // upload files const result = await ipfs.add(file); setImages([ ...images, { cid: result.cid, path: result.path, }, ]); form.reset(); };
이 함수의 논리는 간단합니다.
- 선택한 경우 파일을 확인하십시오. 그렇지 않으면 경고 메시지 파일이 선택되지 않음을 표시합니다.
- ipfs.add(file)파일을 IPFS에 업로드 중입니다.
- add메서드는 다음 속성을 반환하며 cid가장 path중요한 속성은 size( 업로드된 파일에 부여된 콘텐츠 식별자 또는 고유한 콘텐츠 식별자) 및 (파일을 표시하는 데 사용할)입니다.mtimecidpath
- 새 파일을 추가하여 이미지 상태를 업데이트합니다.
구성 요소의 시작 부분에 이 줄을 추가합니다.
const [images, setImages] = useState([])
IPFS에서 업로드된 파일 표시
우리는 이미 onSubmitHandler 함수에 논리를 구현했습니다. 이제 jsx에서 이 논리를 사용
하여 파일을 표시하는 템플릿을 추가하고 Infura API 키에서 전용 게이트웨이 도메인 링크를 마지막으로 복사하고 교체할 작업을 하나 더 추가합니다. dedicated-gateway-link. _<div> {images.map((image, index) => ( <img alt={`Uploaded #${index + 1}`} src={"<dedicated-gateway-link>/ipfs/" + image.path} style={{ maxWidth: "400px", margin: "15px" }} key={image.cid.toString() + index} /> ))} </div>
이제 이 Github 저장소 에서 전체 코드를 확인할 수 있는 모든 것을 성공적으로 구현 했습니다.
블록체인 공부가 필요하면 아래클릭
https://www.youtube.com/watch?v=tQ9DLI-0tC8&t=7s
https://www.youtube.com/watch?v=UVayl0CiFT8&t=11s
수업
https://gamecamp.liveklass.com/classes/116047
반응형'프로그래밍' 카테고리의 다른 글
리액트 웹사이트 이더리움 전송 (0) 2022.11.23 개인정보처리방침 구글 출시용 (0) 2021.06.10 1 강. Direct3D 기본 환경 만들기 (0) 2013.11.14 C 게임프로그래밍 8 (0) 2013.11.09 C 게임프로그래밍 7 (0) 2013.11.09