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:password@example.com/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 theversioncapture 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 theversionregex 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 namedfileto 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:password@example.com: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