IBM / aspera-cli

IBM Aspera CLI
Apache License 2.0
76 stars 17 forks source link

Unclear on how to upload files to Aspera Shares #166

Open 3millionminds opened 5 days ago

3millionminds commented 5 days ago

The documentation (README.md and Manual.pdf) is a bit unclear on how I can use ascli to upload to Aspera Shares server.

I am trying using the method below:

$ ascli --insecure=yes shares files upload --to-folder='/! my-share-name' testfile.bin 

WARNING: Ignoring certificate for: https://[REDACTED]:443. Do not deactivate certificate verification in production.
ERROR: Other(RuntimeError): no FASP installation found--=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=-- 0% 0 Mbps  ETA: ??:??:??
Please check manual on how to install FASP.
Use --log-level=debug to get more details.

The configuration is below

---
config:
  version: 4.19.0
aspera_shares:
  url: 'https://[REDATED]'
  username: 'username'
  password: 'password'
default:
  shares: aspera_shares

As I understand it, FASP is some other product from IBM. Is it mandatory to purchase & install this product as well, in order to be able to upload files to Aspera Shares?

I am able to list the share, and use mkdir... but uploading seems to not work.

Any ideas?

laurent-martin commented 5 days ago

Please check manual on how to install FASP.

install ther SDK:

ascli conf ascp install

as described in manual ...

3millionminds commented 5 days ago

Thank you for the very quick reply.

Will have to try that, but it seems that this URL is blocked by our firewall. Is there any other place we can get the SDK from?

laurent-martin commented 5 days ago

The next version will download using a different URL. Beta is available here: https://eudemo.asperademo.com/download/aspera-cli/aspera-cli-4.20.0.pre.gem

you can get the list of SDKs for platforms here:

https://raw.githubusercontent.com/IBM/aspera-cli/refs/heads/develop/docs/sdk_location.yaml

or here:

https://developer.ibm.com/apis/catalog/aspera--aspera-transfer-sdk/downloads/downloads.json

Next version will use these.

To get the SDK for version 4.19 you can get here:

https://eudemo.asperademo.com/download/sdk-1.1.3-c6c7a2a.zip

try:

ascli conf ascp install --sdk-url=https://eudemo.asperademo.com/download/sdk-1.1.3-c6c7a2a.zip

If you can't download from where you are, then download somewhere else, and install from the file:

ascli conf ascp install --sdk-url=file:///sdk-1.1.3-c6c7a2a.zip
3millionminds commented 4 days ago

After some workarounds I was able to get the sdk and install it. However to make our lives easier we have decided to go with the Docker image instead.

But we are facing the same issue both with docker image and "from scratch" installation.

I am able to list all the files, but I am unable to download or upload anything.

upload:

W, [2024-10-31T14:50:37.937741 #18]  WARN -- : An error occurred during transfer: Error establishing HTTP connection (check HTTP port and firewall)
E, [2024-10-31T14:50:37.937785 #18] ERROR -- : non-retryable error
E, [2024-10-31T14:50:37.937835 #18] ERROR -- : Transfer thread error: Aspera::Transfer::Error:
Error establishing HTTP connection (check HTTP port and firewall):
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:246:in `start_transfer_with_args_env'
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:368:in `block in transfer_thread_entry'
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/resumer.rb:45:in `block in execute_with_resume'
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/resumer.rb:41:in `loop'
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/resumer.rb:41:in `execute_with_resume'
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:367:in `transfer_thread_entry'
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:86:in `block in start_transfer'
D, [2024-10-31T14:50:37.937991 #18] DEBUG -- : EXIT (transfer)
D, [2024-10-31T14:50:37.938236 #18] DEBUG -- : all transfers joined
D, [2024-10-31T14:50:37.938418 #18] DEBUG -- : (value) get notify_to=
ERROR: Transfer: Error establishing HTTP connection (check HTTP port and firewall)
/usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:246:in `start_transfer_with_args_env': Error establishing HTTP connection (check HTTP port and firewall) (Aspera::Transfer::Error)
  from /usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:368:in `block in transfer_thread_entry'
  from /usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/resumer.rb:45:in `block in execute_with_resume'
  from /usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/resumer.rb:41:in `loop'
  from /usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/resumer.rb:41:in `execute_with_resume'
  from /usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:367:in `transfer_thread_entry'
  from /usr/local/bundle/gems/aspera-cli-4.18.0/lib/aspera/agent/direct.rb:86:in `block in start_transfer'

For download it seems it is trying to connect to random localhost port everytime:

ascp: required management connection to port localhost:48467 failed.

Is port 33001 required for non-ssh transfers?

laurent-martin commented 4 days ago

TCP and UDP ports 33001 are not required to download using HTTP fallback.

From the error you show, it sems that it falls back to HTTP download, but it does not manage to connect.

The random port 48467 is allocated (listened) by ascli and provided to ascp (option -M) so that ascp connects-back to that management port and then ascli gets transfer events on that channel. (that's ascp internal thing).

To troubleshoot your issue here, maybe check why ascp cannot connect to the server from within the container, something like : podman run -it container-name-here bash and then from inside you can either execute ascli, or ping or curl, etc... to see what's happening.