Table of Contents
Getting files
An example client to access files from this package server is available as bash script (using curl).
See deployment project https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client
The download script is bin/getfile.sh.
wget -O getfile.sh "https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/-/raw/master/bin/getfile.sh?ref_type=heads"
chmod 755 getfile.sh
How does it work?
TODO: needs to be completed.
Each request to localhost/packages/ is secured.
A request will be rejected in the following cases:
- no authentication was used
- a wrong authentication was used
- an old timestamp was used (maybe the time on client or server are not synced)
- a hashed key was used twice
If a request was OK the file will be delivered.
Possible GET requests are:
- show names of phases (preview|stage|live) (1)
- show products (1)
- show files of a product (1)
- get a single file
(1) only if showdircontent is set to true.
If a valid request came in then the hash will be written to [approot]/tmp/used_hashes.txt
.
This file will be cleaned up if reaching the defined file size with value of maxlockfilesize.
Test package download
If you use the docker environment for development:
In your app root you there is a folder “example-packages”. Inside the docker container it is available as /var/www/ci-pkg/example-packages/.
- Below the package folder folders are subfolders for phases (preview, stage, live and “test”).
- below a phase are the folders with the project id
- inside the project folder are the files per project
example-packages/
├── live
├── preview
├── stage
└── test
└── example-prj
└── hello.txt
In your app root go to the the “tests” folder. This will download the “hello.txt” into the current folder:
./getfile.sh -u http://localhost:8001 -s myapikey -e test -p example-prj -f hello.txt
-rw-r--r-- 1 axel axel 12 Sep 15 14:34 hello.txt
For less params with getfile.sh there is a config:
cat getfile.sh.cfg
# for less params with getfile.sh
IMLCI_PKG_SECRET=myapikey
IMLCI_URL=http://localhost:8001
IMLCI_PHASE=test
With it you can execute ./getfile.sh -p example-prj -f hello.txt
too.
If you enabled the file listing you get a list of files:
./getfile.sh -p example-prj
file:hello.txt
Troubleshooting
To have more output you have these possibilities:
- in the command with ./getfile.sh add the flag
-d
to enable debugging for this script - in public_html/inc_config.php set the key debug to enable the debugging on server (disable it as soon you can)