Overview
The CopyFileHandler allows files and directories to be moved and/or copied from one destination to another. The table below shows the destinations currently supported by the handler along with the expected format of files / directories in the plan.
Destination | File Format | Directory Format |
---|---|---|
Windows Server | C:\Temp\MyFile.txt | C:\Temp\MyDirectory\ |
Network Attached Storage (NAS) | \\server\share$\MyDir\MyFile.txt | \\server\share$\MyDir\ |
Amazon S3 Buckets | s3://bucket/mydir/myfile001.txt | s3://bucket/mydir/ |
Note: Directories must ALWAYS end in a slash. This is mainly because in Windows, there's no way to tell, from the naming convention, if an object is a directory or a file with no file extension.
Plan Details
Config
The config section of the plan specifies the action to perform, as well as flags indicating how the action should be performed. It also contains configuration sections to connect to network/cloud based endpoints that require authentication and additional configuration.
Sample
Handler:
Type: Synapse.Handlers.FileUtil:CopyFileHandler
Config:
Type: Yaml
Values:
Action: Copy
OverwriteExisting: true
Recurse : true
StopOnError: true
PurgeDestination: false
Verbose: true
Aws:
AccessKey: xxxxxxxx
SecretKey: xxxxxxxx
Region: eu-west-1
Element | Type/Value | Required | Description |
---|---|---|---|
Action | "Copy" "Move" |
Yes | Indicates the action to take on the files / directories specified. |
OverwriteExisting | Boolean | No | Whether or not to overwrite existing files / directories (Default = true) |
Recurse | Boolean | No | Should sub-directories be included in the action. Only applies to "Copy". (Default = true) |
StopOnError | Boolean | No | Should Action Continue When An Error Is Encountered. (Default = true) |
PurgeDestination | Boolean | No | Should the destination file/directory be purged before beginning the action (Default = false) |
Verbose | Boolean | No | Log details of each file / directory acted upon. (Default = true) |
Aws | AwsConfig | No* | Details on how to connect to Amazon Web Services to access S3 Buckets. * = Required if any endpoint is an S3 bucket. |
AwsConfig
This configuration section contains information on how to connect to Amazon Web Services to access the S3 endpoints. This is a required section if any endpoint is an S3 bucket. For optional elements, the values will be pulled from the environment variables of the server and/or the AWS credentails file on the server.
Element | Type/Value | Required | Description |
---|---|---|---|
AccessKey | String | No | The Access Id Key used to make programatic requests to AWS. |
SecretKey | String | No | The Secret Access Key used to make programatic requests to AWS. |
Region | String | Yes | A string value representing a valid Amazon RegionEndpoint. While strictly speaking, AWS S3 doesn't require a Region Endpoint, the client being used to access S3 needs to connect somewhere, so the endpoint is required. |
Parameters
The Parameters section is a list of "FileSets", that contain one or more "Sources" that are to be copied or moved to one or more "Destinations". (You can only "Move" sources to a single destination.)
Sample
Parameters:
Type: Yaml
Values:
FileSets:
- Sources:
- C:\Temp\FileUtil\Source1\
- \\localhost\c$\Temp\FileUtil\Source2\
- s3://mybucket/Source/
Destinations:
- C:\Temp\FileUtil\Destination1\
- \\localhost\c#\Temp\FileUtil\Destination2\
- s3://mybucket/Destination/
Element | Type/Value | Required | Description |
---|---|---|---|
FileSets | List of "Sources" and "Destinations" | Yes | A grouping of files and directories that are copied or moved to the destination(s). |
Sources | List of String | Yes | One or more "sources" (files or directories) that should be copied or moved to the destination(s). |
Destinations | List of String | Yes | One or more "destinations" (files or directories) that indicates where the sources are to be copied or moved. |