En un proyecto en el que estoy trabajando me tenia que comunicar con un servidor IBM Aspera Shares para subir y descargar archivos.
Para la interacción con el servidor solo tenia disponible el CLI por lo cual debí instalarla por consola
-
Install cli https://github.com/IBM/aspera-cli
-
apt install -y ruby ruby-dev rubygems ruby-json
-
gem install aspera-cli
-
gem update aspera-cli
-
ascli conf ascp install
-
https://github.com/IBM/aspera-cli#client instalar el aspera connect
Luego para subir y bajar archivo desde la consola utilice los siguientes comandos
/* Upload */
ascli shares repo upload --to-folder=<folder dentro de aspera> <archivo local a subir> --url=<aspera ulr> --username=<user> --password=<pass>
/* Download */
ascli shares repo download --to-folder=<carpeta local> <artchivo en aspera> --url=<aspera ulr> --username=<user> --password=<pass>
Por otro lado analizando el debug generado por la consultas desde el cli encontré que se comunica con un WS dentro del server con el cual puedo acceder y listar el contenido de una ruta especifica de aspera.
function postFilesBrowse($aspera_path,$skip=0,$count=50){
return Http::withHeaders(
[‘Authorization’ => ‘Basic ‘ . base64_encode(env(‘ASPERA_USER’).‘:’.env(‘ASPERA_PASSWORD’)),
‘Accept’ => ‘application/json’,
‘Content-Type’ => ‘application/json’
])
->withBody(
json_encode([
«path»=>$aspera_path,
«skip»=>$skip,
«count» => $count,
]),
‘application/json’)
->post(env(‘ASPERA_HOST’) . ‘/node_api/files/browse’);
}