WebDAV (Web-based Distributed Authoring and Versioning) etant une extension du protocole HTTP, L'idée est de pouvoir échangé via le Processor Nifi InvokeHTTP.
1 - Getfile sur un repètoire local
2 - Détection du type Mime, permettant de d'automatiquement renseigner l'InvokeHTTP
3 - InvokeHTTP en PUT sur le Webdav

| Paramètre | Valeur |
|---|---|
| Input Directory | #{upload.dir} |
| File Filter | #{upload.file.filter} |
| Path Filter | No value set |
| Batch Size | 10 |
| Keep Source File | false |
| Recurse Subdirectories | true |
| Polling Interval | 30 sec |
| Ignore Hidden Files | true |
| Minimum File Age | 0 sec |
| Maximum File Age | No value set |
| Minimum File Size | 0 B |
| Maximum File Size | No value set |
| Paramètre | Valeur |
|---|---|
| HTTP Method | PUT |
| HTTP URL | #{webdav.base.url}/#{webdav.upload.dir}/${filename} |
| HTTP/2 Disabled | False |
| SSL Context Service | No value set |
| Connection Timeout | 5 secs |
| Socket Read Timeout | 15 secs |
| Socket Write Timeout | 15 secs |
| Socket Idle Timeout | 5 mins |
| Socket Idle Connections | 5 |
| Proxy Configuration Service | No value set |
| Request OAuth2 Access Token Provider | No value set |
| Request Username | #{webdav.username} |
| Request Password | Sensitive value set |
| Request Digest Authentication Enabled | true |
| Request Failure Penalization Enabled | false |
| Request Body Enabled | true |
| Request Multipart Form-Data Name | No value set |
| Request Chunked Transfer-Encoding Enabled | false |
| Request Content-Encoding | DISABLED |
| Request Content-Type | ${mime.type} |
| Request Date Header Enabled | True |
| Request Header Attributes Pattern | No value set |
| Request User-Agent | No value set |
| Response Body Attribute Name | No value set |
| Response Body Ignored | false |
| Response Cache Enabled | false |
| Response Cookie Strategy | DISABLED |
| Response Generation Required | false |
| Response FlowFile Naming Strategy | RANDOM |
| Response Header Request Attributes Enabled | false |
| Response Redirects Enabled | True |
| Paramètre | Valeur |
|---|---|
| jsonurl | https://garray.lab02.stef.lan/generate |
| upload.dir | /opt/nifi/webdav_send |
| upload.file.filter | .*\.csv |
| webdav.base.url | https://webdav.bv.stef.lan |
| webdav.username | stef |
| webdav.password | Sensitive value set |
| webdav.remote.path | / |
| webdav.upload.dir | upload |
Actuellement le répertoire que scrute GetFile est vide:
stef@nifi:~$ ls /opt/nifi/webdav_send
stef@nifi:~$
Vue du webdav de mon poste:

Création du repertoire d'upload sur le webdav

Lancement du process Group

Copie de fichier dans /opt/nifi/webdav_send
stef@nifi:~$ cp /opt/nifi/out/*.csv /opt/nifi/webdav_send/
stef@nifi:~$
Execution du Process Group, quatre fichiers ont été traités.

Le répertoire upload du webdav contient bien les quatre fichiers.

Essai d'ouverture OK

{
"flowContents": {
"identifier": "24f59167-667c-3b91-9487-3f5647f2df80",
"instanceIdentifier": "caaddbb9-019f-1000-b77f-9d1a95428b0d",
"name": "Put Webdav file",
"comments": "",
"position": {
"x": -440.0,
"y": -1928.0
},
"processGroups": [],
"remoteProcessGroups": [],
"processors": [
{
"identifier": "c36de861-441f-3f15-bccc-e9680bc9b1a7",
"instanceIdentifier": "cc8a8186-019f-1000-3995-4e6d23b3907b",
"name": "RouteOnAttribute",
"comments": "",
"position": {
"x": -192.0,
"y": 112.0
},
"type": "org.apache.nifi.processors.standard.RouteOnAttribute",
"bundle": {
"group": "org.apache.nifi",
"artifact": "nifi-standard-nar",
"version": "2.8.0"
},
"properties": {
"Routing Strategy": "Route to Property name",
"client_error": "${invokehttp.status.code:ge(400):and(${invokehttp.status.code:lt(500)})}",
"server_error": "${invokehttp.status.code:ge(500)}",
"succes": "${invokehttp.status.code:ge(200):and(${invokehttp.status.code:lt(300)})}"
},
"propertyDescriptors": {
"Routing Strategy": {
"name": "Routing Strategy",
"displayName": "Routing Strategy",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"client_error": {
"name": "client_error",
"displayName": "client_error",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": true
},
"server_error": {
"name": "server_error",
"displayName": "server_error",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": true
},
"succes": {
"name": "succes",
"displayName": "succes",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": true
}
},
"style": {},
"schedulingPeriod": "0 sec",
"schedulingStrategy": "TIMER_DRIVEN",
"executionNode": "ALL",
"penaltyDuration": "30 sec",
"yieldDuration": "1 sec",
"bulletinLevel": "WARN",
"runDurationMillis": 25,
"concurrentlySchedulableTaskCount": 1,
"autoTerminatedRelationships": [],
"scheduledState": "ENABLED",
"retryCount": 10,
"retriedRelationships": [],
"backoffMechanism": "PENALIZE_FLOWFILE",
"maxBackoffPeriod": "10 mins",
"componentType": "PROCESSOR",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "e0fd6f8f-5b7e-3bd5-bf55-d8b0ba6fcc43",
"instanceIdentifier": "cb0400ed-019f-1000-2593-9937f144c2d4",
"name": "LogMessage",
"comments": "",
"position": {
"x": -192.0,
"y": 384.0
},
"type": "org.apache.nifi.processors.standard.LogMessage",
"bundle": {
"group": "org.apache.nifi",
"artifact": "nifi-standard-nar",
"version": "2.8.0"
},
"properties": {
"Log Message": null,
"Log Level": "info",
"Log Prefix": null
},
"propertyDescriptors": {
"Log Message": {
"name": "Log Message",
"displayName": "Log Message",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Log Level": {
"name": "Log Level",
"displayName": "Log Level",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Log Prefix": {
"name": "Log Prefix",
"displayName": "Log Prefix",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
}
},
"style": {},
"schedulingPeriod": "0 sec",
"schedulingStrategy": "TIMER_DRIVEN",
"executionNode": "ALL",
"penaltyDuration": "30 sec",
"yieldDuration": "1 sec",
"bulletinLevel": "WARN",
"runDurationMillis": 25,
"concurrentlySchedulableTaskCount": 1,
"autoTerminatedRelationships": [
"success"
],
"scheduledState": "ENABLED",
"retryCount": 10,
"retriedRelationships": [
"success"
],
"backoffMechanism": "PENALIZE_FLOWFILE",
"maxBackoffPeriod": "10 mins",
"componentType": "PROCESSOR",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "0290e61f-0d23-30a3-9257-7863252cd44f",
"instanceIdentifier": "cacdcf24-019f-1000-eabe-19b7774276fb",
"name": "Get Local file",
"comments": "",
"position": {
"x": -184.0,
"y": -608.0
},
"type": "org.apache.nifi.processors.standard.GetFile",
"bundle": {
"group": "org.apache.nifi",
"artifact": "nifi-standard-nar",
"version": "2.8.0"
},
"properties": {
"Keep Source File": "false",
"Minimum File Age": "0 sec",
"Polling Interval": "30 sec",
"Input Directory": "#{upload.dir}",
"Maximum File Age": null,
"Batch Size": "10",
"Maximum File Size": null,
"Minimum File Size": "0 B",
"Ignore Hidden Files": "true",
"Recurse Subdirectories": "true",
"File Filter": "#{upload.file.filter}",
"Path Filter": null
},
"propertyDescriptors": {
"Keep Source File": {
"name": "Keep Source File",
"displayName": "Keep Source File",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Minimum File Age": {
"name": "Minimum File Age",
"displayName": "Minimum File Age",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Polling Interval": {
"name": "Polling Interval",
"displayName": "Polling Interval",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Input Directory": {
"name": "Input Directory",
"displayName": "Input Directory",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Maximum File Age": {
"name": "Maximum File Age",
"displayName": "Maximum File Age",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Batch Size": {
"name": "Batch Size",
"displayName": "Batch Size",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Maximum File Size": {
"name": "Maximum File Size",
"displayName": "Maximum File Size",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Minimum File Size": {
"name": "Minimum File Size",
"displayName": "Minimum File Size",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Ignore Hidden Files": {
"name": "Ignore Hidden Files",
"displayName": "Ignore Hidden Files",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Recurse Subdirectories": {
"name": "Recurse Subdirectories",
"displayName": "Recurse Subdirectories",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"File Filter": {
"name": "File Filter",
"displayName": "File Filter",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Path Filter": {
"name": "Path Filter",
"displayName": "Path Filter",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
}
},
"style": {},
"schedulingPeriod": "10 sec",
"schedulingStrategy": "TIMER_DRIVEN",
"executionNode": "ALL",
"penaltyDuration": "30 sec",
"yieldDuration": "1 sec",
"bulletinLevel": "WARN",
"runDurationMillis": 0,
"concurrentlySchedulableTaskCount": 1,
"autoTerminatedRelationships": [],
"scheduledState": "ENABLED",
"retryCount": 10,
"retriedRelationships": [],
"backoffMechanism": "PENALIZE_FLOWFILE",
"maxBackoffPeriod": "10 mins",
"componentType": "PROCESSOR",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "c7352ceb-d91d-304c-b89b-7e57935c04c2",
"instanceIdentifier": "caae1e2a-019f-1000-2289-81c4d09356e9",
"name": "Put file on webdav",
"comments": "",
"position": {
"x": -192.0,
"y": -128.0
},
"type": "org.apache.nifi.processors.standard.InvokeHTTP",
"bundle": {
"group": "org.apache.nifi",
"artifact": "nifi-standard-nar",
"version": "2.8.0"
},
"properties": {
"Request Content-Encoding": "DISABLED",
"Request Multipart Form-Data Filename Enabled": "true",
"Request Chunked Transfer-Encoding Enabled": "false",
"Response Header Request Attributes Prefix": null,
"Proxy Configuration Service": null,
"HTTP/2 Disabled": "False",
"Connection Timeout": "5 secs",
"Response Cookie Strategy": "DISABLED",
"Request Password": "#{webdav.password}",
"Socket Read Timeout": "15 secs",
"Socket Idle Connections": "5",
"Request Body Enabled": "true",
"OAuth2 Access Token Refresh Strategy": "ON_TOKEN_EXPIRATION",
"HTTP URL": "#{webdav.base.url}/#{webdav.upload.dir}/${filename}",
"Request OAuth2 Access Token Provider": null,
"Socket Idle Timeout": "5 mins",
"Response Redirects Enabled": "True",
"Socket Write Timeout": "15 secs",
"Request Header Attributes Pattern": null,
"Response FlowFile Naming Strategy": "RANDOM",
"Response Cache Enabled": "false",
"Request Date Header Enabled": "True",
"Request Failure Penalization Enabled": "false",
"Response Body Attribute Size": "256",
"SSL Context Service": null,
"Response Generation Required": "false",
"Request User-Agent": null,
"Response Header Request Attributes Enabled": "false",
"HTTP Method": "PUT",
"Request Username": "#{webdav.username}",
"Request Content-Type": "${mime.type}",
"Response Body Attribute Name": null,
"Request Digest Authentication Enabled": "true",
"Request Multipart Form-Data Name": null,
"Response Cache Size": "10MB",
"Response Body Ignored": "false"
},
"propertyDescriptors": {
"Request Content-Encoding": {
"name": "Request Content-Encoding",
"displayName": "Request Content-Encoding",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Multipart Form-Data Filename Enabled": {
"name": "Request Multipart Form-Data Filename Enabled",
"displayName": "Request Multipart Form-Data Filename Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Chunked Transfer-Encoding Enabled": {
"name": "Request Chunked Transfer-Encoding Enabled",
"displayName": "Request Chunked Transfer-Encoding Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Header Request Attributes Prefix": {
"name": "Response Header Request Attributes Prefix",
"displayName": "Response Header Request Attributes Prefix",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Proxy Configuration Service": {
"name": "Proxy Configuration Service",
"displayName": "Proxy Configuration Service",
"identifiesControllerService": true,
"sensitive": false,
"dynamic": false
},
"HTTP/2 Disabled": {
"name": "HTTP/2 Disabled",
"displayName": "HTTP/2 Disabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Connection Timeout": {
"name": "Connection Timeout",
"displayName": "Connection Timeout",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Cookie Strategy": {
"name": "Response Cookie Strategy",
"displayName": "Response Cookie Strategy",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Password": {
"name": "Request Password",
"displayName": "Request Password",
"identifiesControllerService": false,
"sensitive": true,
"dynamic": false
},
"Socket Read Timeout": {
"name": "Socket Read Timeout",
"displayName": "Socket Read Timeout",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Socket Idle Connections": {
"name": "Socket Idle Connections",
"displayName": "Socket Idle Connections",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Body Enabled": {
"name": "Request Body Enabled",
"displayName": "Request Body Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"OAuth2 Access Token Refresh Strategy": {
"name": "OAuth2 Access Token Refresh Strategy",
"displayName": "OAuth2 Access Token Refresh Strategy",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"HTTP URL": {
"name": "HTTP URL",
"displayName": "HTTP URL",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request OAuth2 Access Token Provider": {
"name": "Request OAuth2 Access Token Provider",
"displayName": "Request OAuth2 Access Token Provider",
"identifiesControllerService": true,
"sensitive": false,
"dynamic": false
},
"Socket Idle Timeout": {
"name": "Socket Idle Timeout",
"displayName": "Socket Idle Timeout",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Redirects Enabled": {
"name": "Response Redirects Enabled",
"displayName": "Response Redirects Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Socket Write Timeout": {
"name": "Socket Write Timeout",
"displayName": "Socket Write Timeout",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Header Attributes Pattern": {
"name": "Request Header Attributes Pattern",
"displayName": "Request Header Attributes Pattern",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response FlowFile Naming Strategy": {
"name": "Response FlowFile Naming Strategy",
"displayName": "Response FlowFile Naming Strategy",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Cache Enabled": {
"name": "Response Cache Enabled",
"displayName": "Response Cache Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Date Header Enabled": {
"name": "Request Date Header Enabled",
"displayName": "Request Date Header Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Failure Penalization Enabled": {
"name": "Request Failure Penalization Enabled",
"displayName": "Request Failure Penalization Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Body Attribute Size": {
"name": "Response Body Attribute Size",
"displayName": "Response Body Attribute Size",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"SSL Context Service": {
"name": "SSL Context Service",
"displayName": "SSL Context Service",
"identifiesControllerService": true,
"sensitive": false,
"dynamic": false
},
"Response Generation Required": {
"name": "Response Generation Required",
"displayName": "Response Generation Required",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request User-Agent": {
"name": "Request User-Agent",
"displayName": "Request User-Agent",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Header Request Attributes Enabled": {
"name": "Response Header Request Attributes Enabled",
"displayName": "Response Header Request Attributes Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"HTTP Method": {
"name": "HTTP Method",
"displayName": "HTTP Method",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Username": {
"name": "Request Username",
"displayName": "Request Username",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Content-Type": {
"name": "Request Content-Type",
"displayName": "Request Content-Type",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Body Attribute Name": {
"name": "Response Body Attribute Name",
"displayName": "Response Body Attribute Name",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Digest Authentication Enabled": {
"name": "Request Digest Authentication Enabled",
"displayName": "Request Digest Authentication Enabled",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Request Multipart Form-Data Name": {
"name": "Request Multipart Form-Data Name",
"displayName": "Request Multipart Form-Data Name",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Cache Size": {
"name": "Response Cache Size",
"displayName": "Response Cache Size",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Response Body Ignored": {
"name": "Response Body Ignored",
"displayName": "Response Body Ignored",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
}
},
"style": {},
"schedulingPeriod": "0 sec",
"schedulingStrategy": "TIMER_DRIVEN",
"executionNode": "ALL",
"penaltyDuration": "30 sec",
"yieldDuration": "1 sec",
"bulletinLevel": "WARN",
"runDurationMillis": 0,
"concurrentlySchedulableTaskCount": 1,
"autoTerminatedRelationships": [],
"scheduledState": "ENABLED",
"retryCount": 10,
"retriedRelationships": [],
"backoffMechanism": "PENALIZE_FLOWFILE",
"maxBackoffPeriod": "10 mins",
"componentType": "PROCESSOR",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "b92880c0-5fec-39b7-90e0-75259aabc38f",
"instanceIdentifier": "cbe36839-019f-1000-e095-ebef2504ddb6",
"name": "IdentifyMimeType",
"comments": "",
"position": {
"x": -192.0,
"y": -368.0
},
"type": "org.apache.nifi.processors.standard.IdentifyMimeType",
"bundle": {
"group": "org.apache.nifi",
"artifact": "nifi-standard-nar",
"version": "2.8.0"
},
"properties": {
"Use Filename In Detection": "true",
"Custom MIME Configuration": null,
"Config Strategy": "Preset"
},
"propertyDescriptors": {
"Use Filename In Detection": {
"name": "Use Filename In Detection",
"displayName": "Use Filename In Detection",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
},
"Custom MIME Configuration": {
"name": "Custom MIME Configuration",
"displayName": "Custom MIME Configuration",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false,
"resourceDefinition": {
"cardinality": "SINGLE",
"resourceTypes": [
"URL",
"TEXT",
"FILE"
]
}
},
"Config Strategy": {
"name": "Config Strategy",
"displayName": "Config Strategy",
"identifiesControllerService": false,
"sensitive": false,
"dynamic": false
}
},
"style": {},
"schedulingPeriod": "0 sec",
"schedulingStrategy": "TIMER_DRIVEN",
"executionNode": "ALL",
"penaltyDuration": "30 sec",
"yieldDuration": "1 sec",
"bulletinLevel": "WARN",
"runDurationMillis": 0,
"concurrentlySchedulableTaskCount": 1,
"autoTerminatedRelationships": [],
"scheduledState": "ENABLED",
"retryCount": 10,
"retriedRelationships": [],
"backoffMechanism": "PENALIZE_FLOWFILE",
"maxBackoffPeriod": "10 mins",
"componentType": "PROCESSOR",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
}
],
"inputPorts": [],
"outputPorts": [
{
"identifier": "eb71df6f-6396-381a-86c7-6300e91c9517",
"instanceIdentifier": "cc66cc87-019f-1000-dc91-be07bdd8f8ac",
"name": "Error",
"position": {
"x": 416.0,
"y": 48.0
},
"type": "OUTPUT_PORT",
"concurrentlySchedulableTaskCount": 1,
"scheduledState": "ENABLED",
"allowRemoteAccess": false,
"portFunction": "STANDARD",
"componentType": "OUTPUT_PORT",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
}
],
"connections": [
{
"identifier": "a20c7500-47cb-3771-842f-da5b93d49424",
"instanceIdentifier": "cb047df7-019f-1000-fa86-7d9f2bddb443",
"name": "",
"source": {
"id": "c7352ceb-d91d-304c-b89b-7e57935c04c2",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "Put file on webdav",
"comments": "",
"instanceIdentifier": "caae1e2a-019f-1000-2289-81c4d09356e9"
},
"destination": {
"id": "c36de861-441f-3f15-bccc-e9680bc9b1a7",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "RouteOnAttribute",
"comments": "",
"instanceIdentifier": "cc8a8186-019f-1000-3995-4e6d23b3907b"
},
"labelIndex": 0,
"zIndex": 3,
"selectedRelationships": [
"Response",
"No Retry",
"Retry",
"Original",
"Failure"
],
"backPressureObjectThreshold": 10000,
"backPressureDataSizeThreshold": "1 GB",
"flowFileExpiration": "0 sec",
"prioritizers": [],
"bends": [],
"loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
"partitioningAttribute": "",
"loadBalanceCompression": "DO_NOT_COMPRESS",
"componentType": "CONNECTION",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "51f763c1-a040-3cfc-96a6-a5f93dcda105",
"instanceIdentifier": "cc8fd521-019f-1000-a10e-b3a6b7b04388",
"name": "",
"source": {
"id": "c36de861-441f-3f15-bccc-e9680bc9b1a7",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "RouteOnAttribute",
"comments": "",
"instanceIdentifier": "cc8a8186-019f-1000-3995-4e6d23b3907b"
},
"destination": {
"id": "eb71df6f-6396-381a-86c7-6300e91c9517",
"type": "OUTPUT_PORT",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "Error",
"instanceIdentifier": "cc66cc87-019f-1000-dc91-be07bdd8f8ac"
},
"labelIndex": 0,
"zIndex": 7,
"selectedRelationships": [
"client_error",
"server_error"
],
"backPressureObjectThreshold": 10000,
"backPressureDataSizeThreshold": "1 GB",
"flowFileExpiration": "0 sec",
"prioritizers": [],
"bends": [],
"loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
"partitioningAttribute": "",
"loadBalanceCompression": "DO_NOT_COMPRESS",
"componentType": "CONNECTION",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "2532262c-9385-3d1f-b441-2064c8dc0349",
"instanceIdentifier": "cc907364-019f-1000-7b6b-1835f9fbe4cb",
"name": "",
"source": {
"id": "c36de861-441f-3f15-bccc-e9680bc9b1a7",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "RouteOnAttribute",
"comments": "",
"instanceIdentifier": "cc8a8186-019f-1000-3995-4e6d23b3907b"
},
"destination": {
"id": "e0fd6f8f-5b7e-3bd5-bf55-d8b0ba6fcc43",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "LogMessage",
"comments": "",
"instanceIdentifier": "cb0400ed-019f-1000-2593-9937f144c2d4"
},
"labelIndex": 0,
"zIndex": 8,
"selectedRelationships": [
"succes",
"unmatched"
],
"backPressureObjectThreshold": 10000,
"backPressureDataSizeThreshold": "1 GB",
"flowFileExpiration": "0 sec",
"prioritizers": [],
"bends": [],
"loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
"partitioningAttribute": "",
"loadBalanceCompression": "DO_NOT_COMPRESS",
"componentType": "CONNECTION",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "71eeaba1-6621-3f48-899a-39f46b4bc79e",
"instanceIdentifier": "cc670c8c-019f-1000-28f8-ea5fef7d128d",
"name": "",
"source": {
"id": "c7352ceb-d91d-304c-b89b-7e57935c04c2",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "Put file on webdav",
"comments": "",
"instanceIdentifier": "caae1e2a-019f-1000-2289-81c4d09356e9"
},
"destination": {
"id": "eb71df6f-6396-381a-86c7-6300e91c9517",
"type": "OUTPUT_PORT",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "Error",
"instanceIdentifier": "cc66cc87-019f-1000-dc91-be07bdd8f8ac"
},
"labelIndex": 0,
"zIndex": 6,
"selectedRelationships": [
"Failure"
],
"backPressureObjectThreshold": 10000,
"backPressureDataSizeThreshold": "1 GB",
"flowFileExpiration": "0 sec",
"prioritizers": [],
"bends": [],
"loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
"partitioningAttribute": "",
"loadBalanceCompression": "DO_NOT_COMPRESS",
"componentType": "CONNECTION",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "f6fdc0c7-6654-3b57-95d4-311b6a3cf029",
"instanceIdentifier": "cbe45029-019f-1000-202d-3375bafbbdd9",
"name": "",
"source": {
"id": "b92880c0-5fec-39b7-90e0-75259aabc38f",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "IdentifyMimeType",
"comments": "",
"instanceIdentifier": "cbe36839-019f-1000-e095-ebef2504ddb6"
},
"destination": {
"id": "c7352ceb-d91d-304c-b89b-7e57935c04c2",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "Put file on webdav",
"comments": "",
"instanceIdentifier": "caae1e2a-019f-1000-2289-81c4d09356e9"
},
"labelIndex": 0,
"zIndex": 5,
"selectedRelationships": [
"success"
],
"backPressureObjectThreshold": 10000,
"backPressureDataSizeThreshold": "1 GB",
"flowFileExpiration": "0 sec",
"prioritizers": [],
"bends": [],
"loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
"partitioningAttribute": "",
"loadBalanceCompression": "DO_NOT_COMPRESS",
"componentType": "CONNECTION",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
},
{
"identifier": "6b789ff1-1eb6-3196-bc0c-afce97b9c837",
"instanceIdentifier": "cbe42d9d-019f-1000-ffa4-5545302308ff",
"name": "",
"source": {
"id": "0290e61f-0d23-30a3-9257-7863252cd44f",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "Get Local file",
"comments": "",
"instanceIdentifier": "cacdcf24-019f-1000-eabe-19b7774276fb"
},
"destination": {
"id": "b92880c0-5fec-39b7-90e0-75259aabc38f",
"type": "PROCESSOR",
"groupId": "24f59167-667c-3b91-9487-3f5647f2df80",
"name": "IdentifyMimeType",
"comments": "",
"instanceIdentifier": "cbe36839-019f-1000-e095-ebef2504ddb6"
},
"labelIndex": 0,
"zIndex": 4,
"selectedRelationships": [
"success"
],
"backPressureObjectThreshold": 10000,
"backPressureDataSizeThreshold": "1 GB",
"flowFileExpiration": "0 sec",
"prioritizers": [],
"bends": [],
"loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
"partitioningAttribute": "",
"loadBalanceCompression": "DO_NOT_COMPRESS",
"componentType": "CONNECTION",
"groupIdentifier": "24f59167-667c-3b91-9487-3f5647f2df80"
}
],
"labels": [],
"funnels": [],
"controllerServices": [],
"parameterContextName": "demo",
"defaultFlowFileExpiration": "0 sec",
"defaultBackPressureObjectThreshold": 10000,
"defaultBackPressureDataSizeThreshold": "1 GB",
"scheduledState": "ENABLED",
"executionEngine": "INHERITED",
"maxConcurrentTasks": 1,
"statelessFlowTimeout": "1 min",
"flowFileConcurrency": "UNBOUNDED",
"flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE",
"componentType": "PROCESS_GROUP"
},
"externalControllerServices": {},
"parameterContexts": {
"demo": {
"name": "demo",
"parameters": [
{
"name": "webdav.password",
"description": "",
"sensitive": true,
"provided": false
},
{
"name": "version",
"description": "",
"sensitive": false,
"provided": false
},
{
"name": "upload.file.filter",
"description": "",
"sensitive": false,
"provided": false,
"value": ".*\\.csv"
},
{
"name": "webdav.base.url",
"description": "",
"sensitive": false,
"provided": false,
"value": "https://webdav.bv.stef.lan"
},
{
"name": "jsonurl",
"description": "",
"sensitive": false,
"provided": false,
"value": "https://garray.lab02.stef.lan/generate"
},
{
"name": "webdav.remote.path",
"description": "",
"sensitive": false,
"provided": false,
"value": "/"
},
{
"name": "ouputfilename",
"description": "",
"sensitive": false,
"provided": false,
"value": "jsontocsv"
},
{
"name": "webdav.username",
"description": "",
"sensitive": false,
"provided": false,
"value": "stef"
},
{
"name": "webdav.upload.dir",
"description": "",
"sensitive": false,
"provided": false,
"value": "upload"
},
{
"name": "outdir",
"description": "",
"sensitive": false,
"provided": false,
"value": "/opt/nifi/webdav_send"
},
{
"name": "upload.dir",
"description": "",
"sensitive": false,
"provided": false,
"value": "/opt/nifi/webdav_send"
}
],
"inheritedParameterContexts": [],
"description": "",
"componentType": "PARAMETER_CONTEXT"
}
},
"flowEncodingVersion": "1.0",
"parameterProviders": {},
"latest": false
}
Il est possible via nifi de deposer des fichiers sur un webdav en utilisant juste les protocoles standard.