我想从本地系统访问这些文件,这样我就可以将它们上传到云中,并将链接存储在区块链上。有没有办法通过Hyperledger Composer中的.js脚本文件访问这些文件?
发布于 2018-06-19 17:48:40
因此,从技术上讲,这是一个Node问题(用于文件上传),并且在语义上是一个建模问题。首先,从作曲家的角度来看,这是一个从“客户端”执行的任务,而编码的解决方案“属于”这里。如果你的意思是(即与Hyperledger Composer业务网络交互)如何在业务网络中访问和存储数据(字符串)-下面的答案将提供更多细节。其他人可能会回答“云”存储方面的问题。您可以始终在区块链上存储指向文件的链接(以及文件的散列,并将其作为URL /链接的一部分提供),以便它可以引用云存储的文件。
如果存储内容是您的目标,那么使用Javascript,您可以使用readFileSync
并转换为字符串,例如。代码中的fs.readFileSync(‘yourFile
).toString(‘base64’);- you should be able to convert the image to a
Base64`字符串。您可以为您选择的建模资产类型等定义' String‘-即在部署的Hyperledger Composer业务网络中托管它的字符串字段。原理是,一旦它是一个字符串,它就可以在商业网络上更新(作为交易,这是智能合约/“链码”的一部分),就像任何其他字段一样。
这些链接在这方面也可能有所帮助:
Can readFileSync from node.js fs library load an array from a text file?
图像文件,https://www.thepolyglotdeveloper.com/2016/02/convert-an-uploaded-image-to-a-base64-string-in-node-js/:-> PDF
与上面类似的另一种类型:-> https://belltane.wordpress.com/2017/03/27/storing-images-in-hyperledger-fabric-blockchain/
发布于 2018-06-28 19:19:21
在事务逻辑脚本中,不能使用require
或import
。
事务逻辑在Fabric上的链码(docker)容器中运行,因此文件系统将是(docker)链码的文件系统,而不是客户端上存储文件的位置。
因此,您最终需要编写一个客户端应用程序(可以访问文件系统),然后通过Composer JavaScript API或REST API调用事务。
https://stackoverflow.com/questions/50921869
复制相似问题