LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 「Filecoin星际大陆」FleekStorageSDK:让IPFS存储更轻松

「Filecoin星际大陆」FleekStorageSDK:让IPFS存储更轻松

2020-06-05 星际大陆 来源:区块链网络

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

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

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

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}.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。

—-

编译者/作者:星际大陆

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...