外部用户调用将无法 运行 IPFS 调用

External user call won't able to run IPFS call

我遵循了这个指南:当作业在 slurm 上启动时,它触发了一个我已经实现的脚本。

我有以下脚本。它可由 SlurmUser 读取和执行。在脚本中,我想调用 ipfs 和 return 生成的哈希值。

hello.sh

#!/bin/bash    
export IPFS_PATH="path/to/ipfs_repo/.ipfs"
x=$(/usr/local/bin/ipfs add -r path/to/added)

slurm.conf 上更新了这一行。

MailProg=/path/to/my_script.sh

所以当我通过SLURM运行一个作业时,这个脚本是能够被触发的。但是它不能 运行 ipfs add -r path/to/added 命令,所以它不能 return 一个有效的散列。 IPFS 应该将当前路径上的文件写入 .ipfs 文件夹和 return 哈希。

我做到了:

sudo chmod +x /usr/local/bin/ipfs
sudo chmod +x path/to/added/*

netlab@ebloc:~/.ipfs$ ls -ls
total 16
4 drwxr-xr-x 78 netlab netlab 4096 May  6 12:02 blocks
4 -rwxr-xr-x  1 netlab netlab 3705 May  5 12:14 config
4 drwxr-xr-x  2 netlab netlab 4096 May  6 12:02 datastore
4 -rwxr-xr-x  1 netlab netlab    2 May  5 12:14 version

感谢您的宝贵时间和帮助。

尝试使用 hello.shipfs 二进制文件的完整路径作为 PATH 环境变量可能缺少 %GOPATH%/bin 目录。

此外,IPFS 从 HOME 环境变量中导出其存储库的路径。如果 HOME 环境变量未设置或指向没有初始化 IPFS 存储库的主目录,则它将找不到已初始化的存储库,并且会出错并退出。要覆盖派生路径,请在调用 ipfs 二进制文件之前设置 IPFS_PATH 环境变量: 导出 IPFS_PATH=/path/to/ipfsrepo