以下哪个是访问s3存储桶的有效url?_「Filecoin星际大陆」Fleek Storage SDK:让IPFS存储更轻松!...

ccc619560d2c8c9afdcf4d2a4a2dcdd6.png

  Fleek Storage使您可以轻松地将文件上传到IPFS并在现代网站上分发它们。为此,我们制作了一个很棒的Web应用程序,该应用程序允许用户以简单直观的方式存储和访问其文件。

  但是,在某些情况下,与手动与UI交互相比,编程方法更可取。这就是为什么我们创建了Fleek Storage SDK的原因,该API将使您在使用Fleek Storage产品时拥有更大的灵活性。

  这篇文章将帮助您使用Storage SDK的常用命令,因此您可以立即启动并运行。

cb864ea6d823175f0c9c0513c7616f72.png

Fleek Storage SDK Cookbook:最常见的命令

  上面的gif已上传,正在通过Fleek Storage共享。您可以使用Fleek Storage为您的站点提供Web资产!

  以下是Fleek Storage SDK的一些常见命令。它们只是可能命令的一小部分。可以在AWS S3 SDK文档中找到更全面的列表。

  话虽如此,我们将在本文中共享的命令对于常见的用例来说应该足够了:

  • 上载档案
  • 获取文件的IPFS哈希
  • 创建用于网站的资产的共享公共URL

使用Fleek CLI提取凭据

  Fleek Storage SDK的使用需要api密钥和机密。幸运的是,我们创建了Fleek CLI,可让您轻松获得这些值。

  • 首先,安装Fleek CLI。
  npm install -g @fleekhq/fleek-cli
  • 然后,登录到fleek。
  fleek login

  浏览器窗口将打开,并显示登录提示。如果您已经登录,该窗口将自动关闭。

  • 成功登录后,您将可以使用以下命令获取密钥和机密:
  fleek whoami

  将这些值复制到安全的地方!

安装AWS开发工具包

  将aws-sdk必须安装NPM包与Fleek存储交互。

  npm install --save aws-sdk

设置S3客户端

  现在,我们将使用我们的凭据设置一个S3客户端。该客户端将用于所有其他AWS S3命令。

  const AWS = require('aws-sdk');
  const s3 = new AWS.S3({
  apiVersion: '2006-03-01',
  accessKeyId: '[[apiKey]]',
  secretAccessKey: '[[apiSecret]]',
  endpoint: ' https:// storageapi.fleek.co ',
  region: 'us-east-1',
  s3ForcePathStyle: true
  });

  将字段apiKey和替换为上一部分中apiSecret获取的凭据fleek whoami。

  存储

  存储桶包含您的所有文件,并且在获取或上传文件时必须指定该存储桶。每个Fleek帐户默认都带有一个存储桶。

  s3.listBuckets(function (err, data) {
  if (err) {
  console.log("Error when listing buckets", err);
  } else {
  console.log("Success when listing buckets", data);
  }
  });

  确保将存储桶的名称保存在其他命令使用的位置。

列出存储桶中的文件

  您可以列出存储桶中的文件。这对于获取文件密钥列表和生成公共URL特别有用。

  const params = {
  Bucket: "my-bucket",
  MaxKeys: 20
  };
  s3.listObjectsV2(params, function (err, data) {
  if (err) {
  console.log("Error when listing objects", err);
  } else {
  console.log("Success when listing objects", data);
  }
  });

  下面提供了典型响应的示例。

  { IsTruncated: false,
  Contents:
  [ { Key: 'homer-cooking.gif',
  LastModified: 2020-05-21T19:07:54.956Z,
  ETag: '"-1"',
  Size: 2078126,
  StorageClass: 'STANDARD',
  Owner: [Object] } ],
  Name: 'samuelea-team-bucket',
  Prefix: '',
  Delimiter: '',
  MaxKeys: 20,
  CommonPrefixes: [],
  KeyCount: 1 }

  Fleek Storage中的每个文件都可以通过Name包含该文件的存储桶的ID 和文件的unique 进行标识Key。

获取文件的URL

  Fleek提供了可用于您的网站的公共URL。例如,如果您上载图像或图标,则可以使用URL在网站中显示它们。

  可以在Web应用程序中轻松找到此公共URL,但您也可以使用存储桶的Name和文件的生成该URL Key。

  const url = `https://${bucket}. http:// storage.fleek.co/ ${key}`

  例如,这是上面显示的gif的URL:

   https:// samuelea-team-bucket.storage.fleek.co /homer-cooking.gif

  samuelea-team-bucket是水桶。 homer-cooking.gif是文件的密钥。

上载档案

  可以通过Web UI上传文件。或者,可以根据用例通过编程方式上传它们。

  方法如下:

  const params = {
  Bucket: 'my-team-bucket',
  Key: 'myFolder/myPicture',
  ContentType: 'image/png',
  Body: myPictureFile,
  ACL: 'public-read',
  };
  const request = s3.putObject(params);
  request.send();

  如果要在Fleek网络应用程序中查看上面的文件,则会myPicture在名为的文件夹下找到该文件myFolder。您可以将文件放在文件夹中,以提供用斜杠分隔的路径来更好地组织资产。

获取IPFS哈希

  Fleek Storage上的所有文件都上传到IPFS,这意味着它们使用唯一的IPFS哈希进行标识。当使用putObject命令上传文件时,Fleek将通过http标头公开IPFS哈希。

  const request = s3.putObject(params);
  request.on('httpHeaders', (statusCode, headers) => {
  const ipfsHash = headers['x-fleek-ipfs-hash'];
  // Do stuff with ifps hash....
  const ipfsHashV0 = headers['x-fleek-ipfs-hash-v0'];
  // Do stuff with the short v0 ipfs hash... (appropriate for storing on blockchains)
  }).send();

  我们建议从x-fleek-ipfs-hash标头中获取散列,该散列将返回base32 v1 IPFS散列。

  对于必须将IPFS哈希存储在以太坊等区块链上的用例,Fleek还通过公开了较短的v0 IPFS哈希x-fleek-ipfs-hash-v0。

  单击还可从Web应用程序获取哈希Verify on IPFS。

  例如,这是用作示例的gif的哈希值:bafybeieosa4izdyojswkzddssuekz47ly7suwb4spiniv33e5ht5kbz5vu。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值