标签: ipfs

如何在不提供特定文件夹和文件在线访问的情况下使用IPFS?

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 没有任何外部访问权限,也没有人可以访问其文件。

caching offline ipfs

5
推荐指数
2
解决办法
1927
查看次数

如何完全卸载 IPFS 并从头开始重新启动并获取新的对等 ID?

如何完全卸载 IPFS 并从头开始重新启动并获取新的对等 ID?我尝试删除 go-ipfs 文件夹,但仍然收到错误:ipfs 配置文件已存在!当我执行 ipfs init 时。

ipfs

5
推荐指数
1
解决办法
6382
查看次数

ipfs节点可以查询远程对等项以列出其引脚吗?

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节点以这种方式查询远程对等方?

或者相反,是否存在将本地引脚列表(即哈希列表)发送给已标识的远程对等方的功能?

谢谢

ipfs libp2p

5
推荐指数
1
解决办法
215
查看次数

无法在 React js 中加载 PDF 文件

我正在开发一个简单的 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)

javascript this reactjs ipfs react-pdf

5
推荐指数
1
解决办法
2万
查看次数

无法访问 ipfs 中的文件

在我的 ubuntu 18.04 ipfs 桌面客户端中,我上传了一个文件。但无法通过我从选项获得的链接访问该文件Share link

在此输入图像描述

这是我的共享链接

我也无法访问其他文件,链接。

为什么会发生这种情况?

ipfs

5
推荐指数
1
解决办法
1567
查看次数

IPFS 和编辑权限

我刚刚将一个包含 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

\n

如果我们随后编辑 \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

这是否是一个好的方案,我们绝对可以讨论,但我首先想回到我最初的问题/担忧,那就是我想确保我们是唯一可以更新内容的人我们的文件夹 - 并且没有其他人有权这样做。 …

blockchain ethereum solidity ipfs

5
推荐指数
1
解决办法
2634
查看次数

是否可以将 Node JS 应用程序托管到 IPFS?可能是通过弗利克吗?

是否可以将 Node JS 应用程序托管到 IPFS?可能是通过弗利克吗?我知道可以使用 Fleek 在 IPFSA 上托管 React JS 应用程序,但是是否可以在 IPFS 上托管或运行 Node 服务器,或者是否有其他分散的方式来托管 Node JS 应用程序?

hosting node.js continuous-deployment ipfs decentralized-applications

5
推荐指数
1
解决办法
893
查看次数

IPFS Angular11 ipfs-http-client 新 IpfsHttpClient = 错误:导出“AbortController”,Multiaddr

ipsf-http-client您好,我在使用角度时遇到问题。返回时new IpfsHttpClient()我缺少MultiaddranySignalAbortController和其他出口。我也有错误:此表达式不可构造,(.../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)

javascript typescript ipfs angular

5
推荐指数
1
解决办法
1224
查看次数

将同一CID下的文件上传到IPFS

我希望创建一个包含 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

5
推荐指数
1
解决办法
3084
查看次数

从IPFS下载后获取文件类型

我正在使用 ipfs 下载文件...但 ipfs 没有文件名或扩展名。

如何根据下载的数据正确设置保存文件的扩展名?

filenames file-extension fs ipfs

5
推荐指数
1
解决办法
915
查看次数