Concourse resource to interact with FTP servers.
- 01-2018: added support for semver versions.
Deploying to Concourse
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).
regex: Required. Python regex to match filenames to. Supports capture groups. Requires at least one capture group named
version. Other groups are added as
version_key: Optional Alternative key to be used for the
versioncapture group (default
debug: Optional Set debug logging of scripts, takes boolean (default
check: Return list of file versions.
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.
in: Retrieve file matching
version from ftp.
regex to compose a list of files and versions, will return the one file that matches the
version provided in
version: Required The version to return (will be matched against the
versionregex capture group).
out: Upload file(s) matching
file glob to ftp.
Uploads a file(s) glob matching
file to the ftp directory specified by
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 named
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:firstname.lastname@example.org: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