IPFS 提供了有用的缓存机制。我的目标是使用 IPFS 缓存机制而不提供在线访问。
即使我不ipfs-hash
与其他用户共享文件的,我也想禁止其他用户访问/提取我存储在本地 IPFS 目录中的文件的可能性,如果他们找到文件ipfs-hash
/文件夹的文件。
=>如果我不运行,ipfs daemon
这会是一个解决方案吗?如果是,问题在于我可能需要使用某些文件ipfs daemon
与其他用户共享它们,或者我也可能需要从其他节点提取文件。问题出现了,当我开始运行 ipfs 守护进程时,这将允许访问存储在本地 ipfs 文件夹中的所有文件。
[问]所以基本上我想用作IPFS
离线缓存工具,并且不为我存储在 IPFS 中的某些特定文件夹提供外部访问。即使 ipfs 守护进程正在运行,我是否可以禁用我决定的特定文件/文件夹的在线访问?
例如,我有多个文件夹,我想将它们存储在本地 IPFS 文件夹下,谁拥有这些ipfs-hash
文件夹就无法提取这些文件。即使 ipfs 守护进程正在运行,我是否可以强制存储在本地 IPFS 文件夹中的那些文件夹没有外部访问权限?并提供其他一些文件夹的在线访问。
作为解决方案,我可以在我的机器上运行两个具有不同本地存储库的不同 IPFS 进程。第一个对外部开放,可以从其他节点等拉取(运行ipfs daemon
);但 other 没有任何外部访问权限,也没有人可以访问其文件。
如何完全卸载 IPFS 并从头开始重新启动并获取新的对等 ID?我尝试删除 go-ipfs 文件夹,但仍然收到错误:ipfs 配置文件已存在!当我执行 ipfs init 时。
IPFS cli / http api具有ipfs pin ls
列出固定哈希值的命令。但是,这仅适用于查询本地节点。有没有一种方法可以对远程节点运行相同的命令,例如
$ ipfs pin ls <PeerID>
Run Code Online (Sandbox Code Playgroud)
哪个会像ipfs pin ls
在列出对等ID标识的节点上那样显示引脚?
出于安全考虑,强烈建议不要运行ipfs节点的人允许远程访问http api(提供/api/v0/pin/ls
)。
是否有内部ipfs函数或libp2p函数,将使ipfs节点以这种方式查询远程对等方?
或者相反,是否存在将本地引脚列表(即哈希列表)发送给已标识的远程对等方的功能?
谢谢
我正在开发一个简单的 React Web 应用程序,该应用程序可以向 IPFS 添加文件或从 IPFS 检索文件。
当文件添加到IPFS时,页面上会出现添加的文件(即医疗文件)的名称以及“查看文件”按钮。
单击该按钮时,应使用react-pdf 中的“文档”组件查看该文件[ https://www.npmjs.com/package/react-pdf | (文档 file="..." 。文件可以是 URL、base64 内容、Uint8Array等。)
从 IPFS 添加和检索文件工作成功。从 IPFS 检索到的文件以Uint8Array的形式传递到 Main.js 组件内的 Document 组件以查看 pdf 文件。但是,该页面无法加载 PDF 文件。另外,我收到一个错误:
Error: "Setting up fake worker failed: "window.pdfjsWorker is undefined"."
Run Code Online (Sandbox Code Playgroud)
请注意,我在 Main.js 中有以下内容:
<Document file={{ data: pdfFile.content }}></Document>
Run Code Online (Sandbox Code Playgroud)
应用程序.js
import React, { Component } from "react";
import Web3 from "web3";
import "./App.css";
import Meme from "../abis/Meme";
import Addressbar from "./Addressbar";
import Main from "./Main"; …
Run Code Online (Sandbox Code Playgroud) 我刚刚将一个包含 5 张图像的文件夹上传到 IPFS(使用 Mac 桌面 IPFS 客户端应用程序,因此这是一个非常简单的拖放操作。)
\n因此,由于 I\xe2\x80\x99m 是创建并发布此文件夹的人,这是否意味着 I\xe2\x80\x99m 是唯一允许对其进行进一步修改的文件夹 - 例如添加或者从中删除更多图像?或者 IPFS 上的任何人也可以这样做吗?
\n如果可以的话,有没有办法防止这种情况发生?
\n=========================================
\n更新的问题:
\n我的具体用例与更新 ERC721 代币的元数据有关 -在 它们\xe2\x80\x99 已经被铸造之后。
\n想象一下,例如,在游戏中,某些物体(例如一把神奇的剑)在使用一定量后或在其所有者完成某些任务后获得特殊能力。因此,我们\xe2\x80\x99d想要通过编辑\xe2\x80\x99s元数据并将此更新后的元数据文件重新提交到区块链来更新此剑\xe2\x80\x99s属性。
\n例如,如果我们的游戏有 100 把剑,并且我们最初上传到 IPFS 的文件夹包含所有 100 个 json 文件(每把剑一个),那么我\xe2\x80\x99m 非常确定 IPFS 仍然让 \xe2\x80\x99s 你访问哈希文件夹中的特定文件通过其特定的人类可读名称(而不仅仅是通过其哈希值。)\n因此,如果我们的剑恰好是剑 #76,并且我们的 JSON 文件的命名约定采用以下格式\xe2\x80\x9csword000.json\xe2\x80\x9d
:那么 Sword#76\xe2\x80\x99s JSON 元数据文件的路径如下:\n http://ipfs.infura.io/QmY2xxxxxxxxxxxxxxxxxxxxx/sword076.json
如果我们随后编辑 \xe2\x80\x9csword076.json\xe2\x80\x9c 文件并将其拖放到我们的主 JSON 文件夹中,则显然会导致该文件夹\xe2\x80\x99s 哈希/CID 值改变。但是,只要我们\xe2\x80\x99能够更新我们的 Solidity Contract\xe2\x80\x99s \xe2\x80\x9ctokenURI\xe2\x80\x9d 方法来查找并服务我们的 \xe2\x80\x9c.json \xe2\x80\x9d 文件来自这个新更新的 HASH/CID 文件夹名称,我们仍然可以通过常规英文名称来引用其中的各个文件。这意味着我们\xe2\x80\x99d 可以开始了。
\n这是否是一个好的方案,我们绝对可以讨论,但我首先想回到我最初的问题/担忧,那就是我想确保我们是唯一可以更新内容的人我们的文件夹 - 并且没有其他人有权这样做。 …
是否可以将 Node JS 应用程序托管到 IPFS?可能是通过弗利克吗?我知道可以使用 Fleek 在 IPFSA 上托管 React JS 应用程序,但是是否可以在 IPFS 上托管或运行 Node 服务器,或者是否有其他分散的方式来托管 Node JS 应用程序?
hosting node.js continuous-deployment ipfs decentralized-applications
ipsf-http-client
您好,我在使用角度时遇到问题。返回时new IpfsHttpClient()
我缺少Multiaddr
、anySignal
、AbortController
和其他出口。我也有错误:此表达式不可构造,(.../ipfs-http-client/types/src/index")' has no construct signatures
。请提示如何解决它或如何正确实现 ipsf-http-client角度应用
Angular CLI: 12.1.4
Node: 14.17.3
Package Manager: npm 6.14.13
OS: win32 x64
Python: 3.10
Run Code Online (Sandbox Code Playgroud)
在 tsconfig 里面:
"skipLibCheck": true,
"target": "es2017",
"module": "es2020",
"lib": [
"es2018",
"dom",
"DOM.Iterable",
"es2015",
"es2015.iterable",
],
"paths" : {
"crypto": ["./node_modules/crypto-browserify"],
"stream": ["./node_modules/stream-browserify"],
"assert": ["./node_modules/assert-plus"],
"http": ["./node_modules/stream-http"],
"https": ["./node_modules/https-browserify"],
"os": ["./node_modules/os-browserify"],
},
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
Run Code Online (Sandbox Code Playgroud)
下面是主要的 ipfs 初始化令牌。
import { Injectable, InjectionToken, Inject } from '@angular/core';
import …
Run Code Online (Sandbox Code Playgroud) 我希望创建一个包含 10k 块的 NFT 项目,每块都应该在令牌被铸造后立即可用,因此我想在与我在其他项目中看到的相同哈希下调用将 JSON 对象上传到 IPFS 。
这意味着当该项目被铸造时,一个新文件将被上传到:
ipfs://<CID>/1
Run Code Online (Sandbox Code Playgroud)
秒铸造将创建令牌 2,然后一个新文件将上传到
ipfs://<CID>/2
Run Code Online (Sandbox Code Playgroud)
如何使用 ipfs 或 pinata api 来完成?
我正在使用 ipfs 下载文件...但 ipfs 没有文件名或扩展名。
如何根据下载的数据正确设置保存文件的扩展名?