F5 File Management#
Introduction#
This tutorial provides a comprehensive guide to manage files on the F5 via the REST-API.
The F5 REST-API provides different endpoints for file management:
Description |
Method |
URI (endpoint) |
Path on the F5 |
|---|---|---|---|
Download a File |
GET |
/mgmt/cm/autodeploy/software-image-downloads |
/shared/images/ |
Upload an Image File |
POST |
/mgmt/cm/autodeploy/software-image-uploads |
/shared/images/ |
Upload a File |
POST |
/mgmt/shared/file-transfer/uploads |
/var/config/rest/downloads/ |
Download a QKView |
GET |
/mgmt/cm/autodeploy/qkview-downloads |
/var/tmp/qkviews |
Download a UCS |
GET |
/mgmt/shared/file-transfer/ucs-downloads |
/var/local/ucs/ |
Upload ASM Policy |
POST |
/mgmt/tm/asm/file-transfer/uploads |
/var/ts/var/rest/ |
Download ASM Policy |
GET |
/mgmt/tm/asm/file-transfer/downloads |
/var/ts/var/rest/ |
The GET method is used for downloading a file and the POST method to upload a file. Transfering files must be done with range headers, because the F5 REST-API restricts the payload size for each request. Restsh handles this transparently for you.
Initial configuration of Restsh#
See First Steps for the initial configuration of Restsh.
Connect#
Connect to the F5 with Restsh:
restshSelect your F5
Upload a file#
This example uses the /mgmt/shared/file-transfer/uploads endpoint that uploads files to /var/config/rest/downloads/ on the F5. A download endpoint for this path does not exist.
# Upload test-file.txt
f5.file.upload /mgmt/shared/file-transfer/uploads test-file.txt
This is the same as:
# Upload test-file.txt
f5.file-transfer.upload test-file.txt
Get the file size#
Check if the file was uploaded by determining its size. It exits with a non-zero exit code if the file does not exist.
f5.file.size /var/config/rest/downloads/test-file.txt
Remove a file#
Restsh uses the /mgmt/tm/util/bash to execute a rm command.
# Remove the file
f5.file.remove /var/config/rest/downloads/test-file.txt
Download a file#
If the file size is specified as 0, Restsh attempts to determine the file size from the HTTP response headers. If that fails, the size must be specified.
f5.file.download /mgmt/cm/autodeploy/software-image-uploads test-file2.txt 0 test-file2.txt
Moving files#
Moving a file is done with the general f5.run function that can execute any Bash commands.
f5.run "mv" "/var/config/rest/downloads/test-file.txt" "/shared/images/test-file2.txt"
Summary#
This tutorial has covered the complete lifecycle of file management using Restsh:
Restsh makes it extremely easy to upload and download files to and from the F5 using the REST API.
Used Restsh commands:
f5.file.upload: Uploads a file to the F5.f5.file-transfer.upload: Uploads a file to /var/config/rest/downloadsf5.file.size: Get the size of a file on the F5.f5.file.remove: Deletes a file from the F5.f5.file.download: Downloads a file from the F5.f5.run: Runs a shell command on the F5.