blockchain:dappsからipfsにファイルをアップロードする
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| blockchain:dappsからipfsにファイルをアップロードする [2022/06/12 06:49] – dot | blockchain:dappsからipfsにファイルをアップロードする [2022/06/16 12:54] (現在) – dot | ||
|---|---|---|---|
| 行 19: | 行 19: | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| ===== IPFSUploader.tsx の実装 ===== | ===== IPFSUploader.tsx の実装 ===== | ||
| 行 30: | 行 31: | ||
| <code JavaScript> | <code JavaScript> | ||
| - | import React, { BaseSyntheticEvent, | + | import React, { useState, useEffect } from ' |
| import type { IPFS } from ' | import type { IPFS } from ' | ||
| import * as IPFSCore from ' | import * as IPFSCore from ' | ||
| 行 69: | 行 70: | ||
| setIpfsReady(Boolean(ipfs)); | setIpfsReady(Boolean(ipfs)); | ||
| }; | }; | ||
| - | const fileSelected = async (event: | + | const fileSelected = async (event: |
| if(!isIpfsReady) return; | if(!isIpfsReady) return; | ||
| - | const targetFile = event.target.files[0]; | + | const targetFile = event.target.files?.[0]; |
| - | const _result = await ipfs.add(targetFile); | + | |
| - | //const _result = await ipfs.add(' | + | |
| - | setCID(_result.path); | + | //const _result = await ipfs.add(' |
| + | setCID(_result.path); | ||
| + | } | ||
| }; | }; | ||
| 行 133: | 行 136: | ||
| MFS を利用してファイルをアップロードする。 | MFS を利用してファイルをアップロードする。 | ||
| + | <code PowerShell> | ||
| + | IPFS\ipfs-web> | ||
| + | </ | ||
| <code JavaScript> | <code JavaScript> | ||
| - | import React, { BaseSyntheticEvent, | + | import React, { useState, useEffect } from ' |
| import type { IPFS } from ' | import type { IPFS } from ' | ||
| import * as IPFSCore from ' | import * as IPFSCore from ' | ||
| 行 146: | 行 152: | ||
| const [version, setVersion] = useState("" | const [version, setVersion] = useState("" | ||
| const [MFSEntlies, | const [MFSEntlies, | ||
| - | const [cid, setCID] = useState("" | ||
| useEffect(() => { | useEffect(() => { | ||
| 行 189: | 行 194: | ||
| setIpfsReady(Boolean(ipfs)); | setIpfsReady(Boolean(ipfs)); | ||
| }; | }; | ||
| - | const fileSelected = async (event: | + | const fileSelected = async (event: |
| if(!isIpfsReady) return; | if(!isIpfsReady) return; | ||
| - | const targetFile = event.target.files[0]; | + | const targetFile = event.target.files?.[0]; |
| - | const fileReader = new window.FileReader(); | + | |
| - | fileReader.readAsArrayBuffer(targetFile); | + | |
| - | fileReader.onloadend = async () => { | + | fileReader.readAsArrayBuffer(targetFile); |
| - | let ab = fileReader.result as ArrayBuffer; | + | fileReader.onloadend = async () => { |
| - | // | + | let ab = fileReader.result as ArrayBuffer; |
| - | | + | const u8a = new Uint8Array(ab); |
| - | | + | console.log(`upload / |
| - | | + | await ipfs.files.write(`/ |
| - | await ipfs.files.write(`/ | + | await ls("/ |
| - | await ls("/ | + | |
| - | | + | } |
| - | const flushCID = await ipfs.files.flush("/ | + | |
| - | console.log(flushCID.toString()); | + | |
| - | */ | + | |
| - | }; | + | |
| - | /* | + | |
| - | const _result = await ipfs.add(targetFile); | + | |
| - | //const _result = await ipfs.add(' | + | |
| - | setCID(_result.path); | + | |
| - | */ | + | |
| }; | }; | ||
| const ls = async (path: string) => { | const ls = async (path: string) => { | ||
| 行 238: | 行 234: | ||
| <input id=" | <input id=" | ||
| <div> | <div> | ||
| - | < | ||
| < | < | ||
| - | < | ||
| - | < | ||
| <p> | <p> | ||
| { MFSEntlies? | { MFSEntlies? | ||
| 行 247: | 行 240: | ||
| < | < | ||
| <p> | <p> | ||
| - | <img src={`https:// | + | |
| + | | ||
| </p> | </p> | ||
| </ | </ | ||
| 行 259: | 行 253: | ||
| export default IPFSDirectoryUploader; | export default IPFSDirectoryUploader; | ||
| </ | </ | ||
| + | |||
| + | App.tsx に IPFSDirectoryUploader コンポーネントを記述する。 | ||
blockchain/dappsからipfsにファイルをアップロードする.1655016597.txt.gz · 最終更新: by dot
