From 323909565aea1785bf2e7bd4d2878337c1255e08 Mon Sep 17 00:00:00 2001 From: aowheel Date: Thu, 3 Oct 2024 23:35:12 +0900 Subject: [PATCH 1/2] =?UTF-8?q?cli=E3=81=8B=E3=82=89=E9=81=A9=E5=BD=93?= =?UTF-8?q?=E3=81=AA=E3=83=91=E3=82=B9=E3=81=AB=E7=BD=AE=E3=81=84=E3=81=9F?= =?UTF-8?q?=E7=94=BB=E5=83=8F=E3=82=92ipfs=E3=81=AB=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/cli/src/commands/pinata.ts | 21 +++++++++++++++++++++ pkgs/cli/src/image/test.png | Bin 0 -> 14097 bytes 2 files changed, 21 insertions(+) create mode 100644 pkgs/cli/src/image/test.png diff --git a/pkgs/cli/src/commands/pinata.ts b/pkgs/cli/src/commands/pinata.ts index 41c99cf..74d43fa 100644 --- a/pkgs/cli/src/commands/pinata.ts +++ b/pkgs/cli/src/commands/pinata.ts @@ -1,6 +1,8 @@ import { Command } from "commander"; import { getJwt, setJwt } from "../services/pinata"; import { PinataSDK } from "pinata-web3"; +import path from "path"; +import fs from "fs"; export const pinataCommands = new Command(); @@ -109,3 +111,22 @@ pinataCommands console.log("URI:", `ipfs://${upload.IpfsHash}`); } ); + +/** + * 画像をipfsにアップロードするコマンド + */ +pinataCommands + .command("uploadImage") + .description("Upload image on ipfs") + .requiredOption("--imagePath ", "Path to image") + .action(async ({ imagePath }) => { + const { jwt } = getJwt(); + + const pinata = new PinataSDK({ pinataJwt: jwt }); + const currentDir = process.cwd(); + const absPath = path.join(currentDir, imagePath); + const stream = fs.createReadStream(absPath); + const upload = await pinata.upload.stream(stream); + + console.log("CID:", upload.IpfsHash); + }); diff --git a/pkgs/cli/src/image/test.png b/pkgs/cli/src/image/test.png new file mode 100644 index 0000000000000000000000000000000000000000..fe5f67eb3e04bb5fc39a3496a74307f11e0129fd GIT binary patch literal 14097 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 Y=8cvC_Wj&6xXuPcX&Y#jX`t`_AOGv>bN~PV literal 0 HcmV?d00001 From 413dd451b321f2d3651fe8e20fd776715342c1ab Mon Sep 17 00:00:00 2001 From: yu23ki14 Date: Fri, 4 Oct 2024 08:55:12 +0900 Subject: [PATCH 2/2] add loading --- pkgs/cli/src/commands/pinata.ts | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/pkgs/cli/src/commands/pinata.ts b/pkgs/cli/src/commands/pinata.ts index 74d43fa..dccb967 100644 --- a/pkgs/cli/src/commands/pinata.ts +++ b/pkgs/cli/src/commands/pinata.ts @@ -3,6 +3,7 @@ import { getJwt, setJwt } from "../services/pinata"; import { PinataSDK } from "pinata-web3"; import path from "path"; import fs from "fs"; +import { startLoading } from "../services/loading"; export const pinataCommands = new Command(); @@ -116,17 +117,24 @@ pinataCommands * 画像をipfsにアップロードするコマンド */ pinataCommands - .command("uploadImage") - .description("Upload image on ipfs") - .requiredOption("--imagePath ", "Path to image") - .action(async ({ imagePath }) => { + .command("uploadImage") + .description("Upload image on ipfs") + .requiredOption("--imagePath ", "Path to image") + .action(async ({ imagePath }) => { const { jwt } = getJwt(); - const pinata = new PinataSDK({ pinataJwt: jwt }); + const stop = startLoading(); + + const pinata = new PinataSDK({ pinataJwt: jwt }); const currentDir = process.cwd(); - const absPath = path.join(currentDir, imagePath); - const stream = fs.createReadStream(absPath); - const upload = await pinata.upload.stream(stream); + const absPath = path.join(currentDir, imagePath); + const stream = fs.createReadStream(absPath); + const upload = await pinata.upload.stream(stream, { + metadata: { name: `TobanCLI_${new Date().getTime()}` }, + }); + + stop(); - console.log("CID:", upload.IpfsHash); - }); + console.log("CID:", upload.IpfsHash); + console.log("URI:", `ipfs://${upload.IpfsHash}`); + });