就是这个,请给一个教程,谢谢了
好,我整理一下。大神的这个url,是要微信访问你的主机的。所以你也要先确认,
- 你的node-red可以访问到你主机的一个文件夹,图片要放到这个文件夹下。如果是在docker下安装的,要做一些处理。
- 你外网可以访问到node-red主机。我是启用了https访问,但我记得企业微信好像没有特别要https访问,能从外网访问到就可以了。
我是读取报错,,,,
你直接用浏览器访问这个url。如果能访问,那就是节点配置有问题。如果不能访问,那就是要建立一个静态网页,让浏览器可以访问才行
就卡在这步骤 外网访问的文件目录
就这样 图片url可以访问 但是报这个错误
我在这个地方卡住了2天,就是url无法访问,就要解决url访问的问题。
建立图片存储目录
要保证node-red主机可以访问到。
比如:/home/pi/Pictures
建立静态网页和http访问
server {
listen 9901; #端口号 这是我自己指定的端口号
server_name localhost; #本机
charset utf-8;
#access_log logs/host.access.log main;
location ~ .*\.(gif|jpg|jpeg|png)$ {
expires 24h;
root /home/pi/Pictures/;#指定图片存放路径
# access_log /usr/local/websrv/nginx-1.9.4/logs/images.log;#日志存放路径
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_temp_path /home/pi/Pictures/;#图片访问路径
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
client_max_body_size 10m;
client_body_buffer_size 1280k;
proxy_connect_timeout 900;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 40k;
proxy_buffers 40 320k;
proxy_busy_buffers_size 640k;
proxy_temp_file_write_size 640k;
if ( !-e $request_filename)
{
proxy_pass http://127.0.0.1;#默认80端口
}
}
}
然后使用浏览器浏览试试看
http://192.168.3.234:9901/CLOUDY.jp
应该可以看到
报这个错误
图片是可以访问的
你把url这句注释掉//,看看还报错吗?如果还报错,就是你前面那句有问题,无法获取本地图片。第一句话是取文件给微信临时素材的;第二句话是给微信内容的。你要是可以url访问,那就是第一句给微信临时素材,取不到文件,是另外的问题了
还是报错
你这个目录看着怪怪的。
- 要保证目录是绝对路径,从根目录开始,一直到存放图片的目录
- 如果是docker安装,要保证这个目录包含在docker映射目录之下
- 这个目录的访问权限
我的这个配置是node-red安装在docker下,这个目录是docker启动的时候明确的映射目录下的
docker是比较特殊,下面是我的docker启动node-red命令,你对照一下啊。你那个图片目录要放到主机的“/home/pi/docker/node-red-data”下面,比如“/home/pi/docker/node-red-data/picture/”;你节点填写的位置是“/data/picture”。就是你节点填写的根目录,和主机映射的那个目录是对应的。
不打算用本地了 老哥这句msg.filename = ${skycon_en}.jpg
; 怎么改成从网上获取图片
或者怎么把/home/pi/docker/node-red-data映射出来
我原先也打算把图片放到一个统一的文件服务器下。但是我刚刚接触docker,对其了解还不是很深刻,所以就没有去动。不过,你可以试一下,这要求你的docker可以访问到其他主机的目录。估计要借助ssh之类的工具,这样你这台“docker主机”才能访问到其他主机的目录啊。下面是个图片调试的工具,可以查看“本地目录”下的图片,也可以看网站的图片。你可以使用“本地目录”那个流程测试读取本地文件是否可行
安装节点:node-red-contrib-image-output
流程是
[{"id":"2d04e3ce.40c1dc","type":"inject","z":"5628b8c4.892958","name":"触发图片预览","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":210,"y":2820,"wires":[["88415c40.cf072"]]},{"id":"856e4fde.26b17","type":"image","z":"5628b8c4.892958","name":"","width":160,"data":"payload","dataType":"msg","thumbnail":true,"active":true,"x":820,"y":2820,"wires":[]},{"id":"88415c40.cf072","type":"http request","z":"5628b8c4.892958","name":"获取网站图片","method":"GET","ret":"bin","paytoqs":false,"url":"https://bbsiobrokercn-1255708240.cos.ap-hongkong.myqcloud.com/forum/201906/11/203727zy5cqi4ipix5q1ih.png","tls":"","persist":false,"proxy":"","authType":"","x":520,"y":2820,"wires":[["856e4fde.26b17"]]},{"id":"4c46aa70.7b2d64","type":"inject","z":"5628b8c4.892958","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":210,"y":2900,"wires":[["bc0392a.fefaa7"]]},{"id":"bc0392a.fefaa7","type":"file in","z":"5628b8c4.892958","name":"读取本地图片","filename":"/data/Pictures/CLEAR_NIGHT.jpg","format":"","chunk":false,"sendError":false,"encoding":"none","x":520,"y":2900,"wires":[["856e4fde.26b17"]]}]
如果是用docker,请注意相对路径和实体路径的差异。绝大多数的人是坑在了这里。你的图片要外网能访问才行。不是随便一个目录就能访问的。
外网可以访问,,,
大佬,这个地方把我坑惨了。我开始node-red不是在docker下安装的,调试就简单得多。后来改在docker下安装,真的是找不到一丝的抓手。什么招都用上了,梅林路由器都差点让我搞残废了。网上教程太乱了。这也是制约小白们的一个很大的障碍。
大神那个节点,第一句话是本地读取,第二句话是网络访问。你现在要解决第一句话,本地读取。我刚刚那个节点流程,上面的是网络访问,下面的是本地读取。你可以把自己的参数带进来测试。