javascript - Hyperledger Composer:访问本地系统上的文件
问题描述
我想从本地系统访问文件,以便我可以将它们上传到云端并将链接存储在区块链上。有没有办法通过 Hyperledger Composer 中的 .js 脚本文件访问文件?
解决方案
所以从技术上讲,这是一个节点问题(用于文件上传),并且在语义上是一个建模问题。首先,这是(从 Composer 的角度来看)从“客户端”端执行的任务,并且编码的解决方案“属于”这里。如果您的意思是(即与 Hyperledger Composer 业务网络交互)如何在业务网络中访问和存储为数据(字符串) - 下面的答案将提供更多详细信息。其他人可能会回答“云”存储方面的问题。您始终可以在区块链上存储文件的链接(以及文件的哈希并将其作为 URL / 链接的一部分提供),因此它可以引用云存储的文件。
如果存储内容是您的目标,使用 Javascript,您可以使用readFileSync
并转换为字符串,例如。 fs.readFileSync(‘yourFile
).toString('base64'); - you should be able to convert the image to a
代码中的 Base64` 字符串。您可以为您选择的建模资产类型等定义“字符串” - 即在已部署的 Hyperledger Composer 业务网络中托管它的字符串字段。理论是,一旦它是一个字符串,它就可以像任何其他字段一样在业务网络上更新(作为交易,这是智能合约/“链码”的一部分)。
这些链接在这方面也可能有所帮助:
node.js fs 库中的 readFileSync 可以从文本文件中加载数组吗?
图像文件、PDF:-> https://www.thepolyglotdeveloper.com/2016/02/convert-an-uploaded-image-to-a-base64-string-in-node-js/
与上述类似的另一种类型:-> https://belltane.wordpress.com/2017/03/27/storing-images-in-hyperledger-fabric-blockchain/
推荐阅读
- mysql - 错误 1062 键 'primary' 的重复条目 '0'
- r - 如何获得每个主成分解释的总方差
- powerbi - Power BI - 如何从原始源创建另一个表
- mvvm - Xamarin 在列表中形成列表(使用 prism 导航)
- python - pyodbc执行sqlserver存储过程——如何为用户定义表传入DEFAULT参数
- python - 如何在 HMTL/Bootstrap4 中使用变量作为选择器?
- c++ - 多线程中的工作池内存泄漏
- ios - 用原点阻止了一个框架
- java - 为什么下面代码的输出是这个映射:{1=[Dd,Ff], 2=[Dd,Ff], 3=[Dd,Ff], 4=[Dd,Ff]}?
- python - 如何将一个变量的输入变成一个列表?