本流程图用于同步本地图片到淘宝旺铺素材中心。分两部分:
- 列出data目录下的所有文件,传送给流程8606,上传到素材中心;
- 接受流程8606的请求,读取本地图片文件的内容,返回流程8606;
用户可复制以下流程内容,导入到自己的流程管理系统。
[
{
"id": "7205b4a0ab294b59",
"type": "tab",
"label": "同步本地图片到淘宝旺铺素材中心",
"disabled": false,
"info": "",
"env": []
},
{
"id": "1d2b86ef30d8727b",
"type": "inject",
"z": "7205b4a0ab294b59",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 90,
"y": 60,
"wires": [
[
"d605d8afd8cc5634"
]
]
},
{
"id": "d605d8afd8cc5634",
"type": "readdir",
"z": "7205b4a0ab294b59",
"name": "列出data目录下的文件",
"dir": "data",
"as": "single",
"recursive": true,
"outproperty": "payload",
"x": 300,
"y": 60,
"wires": [
[
"f7a5cdd1b5ef0d01"
]
]
},
{
"id": "f7a5cdd1b5ef0d01",
"type": "dianshangji",
"z": "7205b4a0ab294b59",
"name": "同步本地图片到淘宝旺铺素材中心",
"process": "8606",
"query": "",
"browser": "",
"closetab": true,
"x": 600,
"y": 60,
"wires": [
[],
[
"ed06266a517765fe"
],
[]
]
},
{
"id": "ed06266a517765fe",
"type": "debug",
"z": "7205b4a0ab294b59",
"name": "调试 17",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 860,
"y": 60,
"wires": []
},
{
"id": "59a7a6516a1e2ef6",
"type": "http in",
"z": "7205b4a0ab294b59",
"name": "接受请求文件",
"url": "/readimagefile/:itemid/:filename",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 90,
"y": 140,
"wires": [
[
"2a4499d092f6785d"
]
]
},
{
"id": "471e6412c543dd42",
"type": "http response",
"z": "7205b4a0ab294b59",
"name": "返回图片内容",
"statusCode": "",
"headers": {
"content-type": "image/jpeg"
},
"x": 880,
"y": 140,
"wires": []
},
{
"id": "28526e736746af57",
"type": "file in",
"z": "7205b4a0ab294b59",
"name": "读取本地图片文件",
"filename": "filename",
"filenameType": "msg",
"format": "",
"chunk": false,
"sendError": false,
"encoding": "none",
"allProps": false,
"x": 530,
"y": 140,
"wires": [
[
"471e6412c543dd42"
]
]
},
{
"id": "2a4499d092f6785d",
"type": "change",
"z": "7205b4a0ab294b59",
"name": "",
"rules": [
{
"t": "set",
"p": "filename",
"pt": "msg",
"to": "\"data/\" & msg.req.params.itemid & \"/\" & msg.req.params.filename & \".jpg\"",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 290,
"y": 140,
"wires": [
[
"28526e736746af57"
]
]
}
]
第一部分
列出data目录下的所有文件:这个节点的类型是“readdir”,编辑该节点,设置“Directory”为“data”。
该节点以数组形式将“data”目录下的所有文件路径发送给下一个连接的节点。
如果用户以前没有安装过“readdir”节点,需点击流程管理系统的页面右上角“节点管理”菜单。
然后点击“安装”标签。
在“搜索模块”中输入“dir”,可搜索得到“node-red-contrib-readdir”这一项,点击“安装”。
即可将“readdir”添加到流程管理系统页面的左侧面板中。
节点在面板的位置如下图所示。
第二部分
流程图中的流程8606需要从本地读取图片文件的内容,再上传到素材中心,因此需要由第二部分节点提供图片数据。
我们规定每个宝贝的图片文件位于“data/宝贝ID/文件名”这样的位置
对应的URL则如下类似的格式所示:
http://127.0.0.1:51880/readimagefile/538541028133/TB29fSccxwlyKJjSZFsXXar3XXa
- 宝贝ID:538541028133
- 图片文件名:TB29fSccxwlyKJjSZFsXXar3XXa
用户可测试一下,在浏览器地址栏输入如下图类似的链接,应显示出本地存储的某一个宝贝的图片文件。
流程8606将每个宝贝的一组图片分别上传到素材中心,文件夹结构如下所示:
每个宝贝ID作为文件夹的名字,该宝贝详情页的所有主图、SKU图片以及详情描述的图片都上传至该文件夹。