What's happening here is that you're misusing the @ flag for the --data-binary option. The man page for curl describes its use quite clearly
  If you start the data with the letter @, the rest should be a file name to read the data  from, or - if you want curl to read the data from stdin.
What you wrote instructed curl to use the file called app-debug.apk from the subdirectory example.com:
curl ... --data-binary @example.com/app-debug.apk
It then told you that it couldn't find that file, but then proceeded to complete the rest of the command, resulting in an empty POST:
Warning: Couldn't read data from file
Warning: "https://s3-eu-west-1.amazonaws.com/files.greenhouseci.com/projects/6d
Warning: 7f406a-2a65-4be0-83ee-75ca0afae7c9/builds/24f78eb5-819f-44d5-9c21-edce
Warning: 4dc9f253/artefacts/app-debug.apk", this makes an empty POST.
Nowhere does it say that @ can be used to reference a URI, so what you need to do is to get the artifact yourself and then POST it to your server. Something like either of these suggestions could work
- Download the POST content and then upload it - curl https://example.com/app-debug.apk >app-debug.apk
curl -X POST https://xxx.example.com:443/api/storage/upload -H "Content-Type:application/octet-stream" --data-binary @app-debug.apk
 
- Stream the POST content and upload it - curl https://example.com/app-debug.apk |
    curl -X POST https://xxx.example.com:443/api/storage/upload -H "Content-Type:application/octet-stream" --data-binary @-