树叶云Moralis教程:Moralis IPFS

保存文件

使用 Moralis 时,IPFS 支持开箱即用。

您可以使用 ​saveIPFS()​ 方法上传文件(最大文件大小为 1 GB)。

// Save file input to IPFS
const data = fileInput.files[0];
const file = new Moralis.File(data.name, data);
await file.saveIPFS();

//console.log(file.ipfs(), file.hash())

// Save file reference to Moralis
const jobApplication = new Moralis.Object("Applications");
jobApplication.set("name", "Satoshi");
jobApplication.set("resume", file);
await jobApplication.save();

// Retrieve file
const query = new Moralis.Query("Applications");
query.equalTo("name", "Satoshi");
query.find().then(function ([application]) {
  const ipfs = application.get("resume").ipfs();
  const hash = application.get("resume").hash();
  console.log("IPFS url", ipfs);
  console.log("IPFS hash", hash);
});

数据会自动固定。

保存对象

您还可以直接从 JavaScript 上传 JSON 对象,通过保存 base64 字符串,Moralis 将自动从提供的 base64 创建缓冲区:

const object = {
  key: "value",
};
const file = new Moralis.File("file.json", {
  base64: btoa(JSON.stringify(object)),
});
await file.saveIPFS();

通过上传 base64,您还可以上传其他 base64 编码的文件,例如图片(你可以使用​JS​、​React​来实现)。

const image = "data:image/png;base64,iVBORw0KGgoAAA....";
const file = new Moralis.File("image.png", { base64: image });
await file.saveIPFS();
const { saveFile } = useMoralisFile();

const uploadFile = () => {
  const base64 = "V29ya2luZyBhdCBQYXJzZSBpcyBncmVhdCE=";
  saveFile(
    "myfile.txt",
    { base64 },
    {
      type: "base64",
      saveIPFS: true,
      onSuccess: (result) => console.log(result.ipfs()),
      onError: (error) => console.log(error),
    }
  );
};

通过公用网关获取文件

可以通过对公共网关的 GET 请求来检索 IPFS 文件。 Moralis 网关的 URL 是:

  • https://gateway.moralisipfs.com/ipfs/

例如,https://gateway.moralisipfs.com/ipfs/QmUfpsyqc4hwozotRo4woyi5fJqvfcej5GcFvKiWoY6xr6。 从浏览器获取 IPFS 中的 JSON 文档的函数可以编写如下:

async function fetchIPFSDoc(ipfsHash) {
  const url = `https://gateway.moralisipfs.com/ipfs/${ipfsHash}`;
  const response = await fetch(url);
  return await response.json();
}

公共网关用例

Moralis 公共 IPFS 网关用于:

  • 在通过 Moralis 上传的网站上显示内容

Moralis 公共 IPFS 网关不适用于:

  • 运行从 IPFS 下载内容的脚本。 Moralis 公共网关有一个用于防止滥用的 JS Challenge 阻止脚本。 如果您的用例要求您运行脚本下载大量 IPFS 数据,我们推荐 Infura 或 Pinata。
  • 访问 IPFS 上未通过 Moralis 上传的文件。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/231322.html<

(0)
运维的头像运维
上一篇2025-04-19 15:44
下一篇 2025-04-19 15:45

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注