javascript - pinFileToIPFS 400(错误请求)
问题描述
我的目标是创建一个反应应用程序,允许用户使用 PINATA 上传图像并将其固定到 IPFS。我尝试了几次,但我不明白为什么我的请求被拒绝了。我明白了
POST https://api.pinata.cloud/pinning/pinFileToIPFS 400(错误请求)
我按照这个说明(https://github.com/PinataCloud/Pinata-SDK):pinFileToIPFS想要一个“可读流”,我认为我的“streamFile”是一个可读流(streamFile instanceof stream.Readable是TRUE),所以我不知道为什么会被拒绝。
我所做的是
npx create-react-app pinata-test npm install --save @pinata/sdk npm i streamifier npm i stream
然后我编辑了 App.js 文件如下:
import { useState, } from "react";
import './App.css';
import stream from 'stream';
function App() {
const [img, setImg] = useState("");
const onSubmitPressed = (e) => {
e.preventDefault()
const key = process.env.KEY;
const secret = process.env.SECRET;
const pinataSDK = require('@pinata/sdk');
const pinata = pinataSDK(key,secret);
var streamifier = require('streamifier');
pinata.testAuthentication().then((result) => {
//handle successful authentication here
console.log(result);
}).catch((err) => {
//handle error here
console.log(err);
});
var reader = new FileReader();
reader.readAsDataURL(img);
reader.onloadend = function() {
var base64data = reader.result;
var buffer = new Buffer.from(base64data, 'base64');
var streamFile = streamifier.createReadStream(buffer);
console.log('instanceof: ',streamFile instanceof stream.Readable);
pinata.pinFileToIPFS(streamFile).then((result) => {
//handle results here
console.log(result);
}).catch((err) => {
//handle error here
console.log(err);
});
}
};
return (
<div className="App">
<form>
<h2>Insert image</h2>
<input
type="file"
accept="image/*"
onChange={(event) => setImg(event.target.files[0])}
/>
<button id="pin" onClick={onSubmitPressed}>Press to PIN</button>
</form>
</div>
);
}
export default App;
谢谢你们
解决方案
推荐阅读
- c# - 如何在项目安装过程中创建 postgresql 数据库?
- angular - 手动将值分配给 formgroup vs patchValue
- python - 匹配多列并添加到数据框
- service-worker - 保留预缓存,同时删除工作箱服务工作者中的其他缓存
- macos - 升级 macOS Catalina 10.15.3 后找不到 localhost - 无效命令“MultiviewsMatch”
- android - Firebase 依赖问题
- javascript - 从选择选项 HTML 中获取 JS 中的值
- azure - 处理多个 azure devops 管道
- apache-kafka - 如何将“授权:承载”传递给 kafka-avro-producer
- laravel - 无法将“EVAL”与 redis-cluster 一起使用