Concourse resource to interact with FTP servers.
https://hub.docker.com/r/aequitas/ftp-resource/
No changes are necessary to BOSH configuration. However, you must define the FTP resource in a resource_types
as can be seen in the below example pipeline.
-
uri
: Required. The URI for the FTP server (including path). Example:ftp://user:[email protected]/team/prod/
-
regex
: Required. Python regex to match filenames to. Supports capture groups. Requires at least one capture group namedversion
. Other groups are added asmetadata
. -
version_key
: Optional Alternative key to be used for theversion
capture group (defaultversion
). -
debug
: Optional Set debug logging of scripts, takes boolean (defaulttrue
).
Will request a list of files from the uri
and filter on matching regex
extracting the version_key
and returning list of versions captured groups.
Uses the regex
to compose a list of files and versions, will return the one file that matches the version
provided in params
.
version
: Required The version to return (will be matched against theversion
regex capture group).
Uploads a file(s) glob matching file
to the ftp directory specified by uri
.
-
file
: Glob used to determine files to upload from src dir (default*
). -
keep_versions
: If specified determined the amount of files to keep, deleting the old versions (default null). Requires a regex capture group namedfile
to work.
file
: Required. Glob pattern to specify which files need to be uploaded.
resource_types:
- name: ftp
type: docker-image
source:
repository: aequitas/ftp-resource
resources:
- name: ftpupload
type: ftp
source:
regex: (?P<file>test(?P<version>[0-9\.]+).*\.txt)
uri: ftp://user:[email protected]:21/team/prod/
jobs:
- name: testftp
plan:
- task: touchfile
config:
platform: linux
run:
path: sh
args:
- -exc
- |
touch test/test1.txt
outputs:
- name: test
- put: ftpupload
params:
file: test/test1.txt