Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This is a question about the API that allows you to download files from Aspera Connect and confirm the completion of the file transfer. #93

Open
blogsook opened this issue Jan 14, 2025 · 0 comments

Comments

@blogsook
Copy link

blogsook commented Jan 14, 2025

When downloading a file from Aspera Connect, please let me know if an API function can confirm that the file has been downloaded and completed.

Related information
var transferCookie = {
idx : idx,
issueId : issueId,
};
var connectSpec = {
allow_dialogs: false,
use_absolute_destination_path: true
};
var transferSpec = {
paths: [
{
source: filePath,
destination: fileName
}
],
destination_root: targetDirectory,
remote_host: "${asperaVo.serverIp}",
remote_user: "${asperaVo.userId}"
remote_password: "${asperaVo.userPw}",
direction: 'receive',
authentication : 'password',
cipher : 'none',
overwrite_policy : 'always',
cookie: transferCookie,
fasp_port : "${asperaVo.faspPort}",
ssh_port : "${asperaVo.sshPort}",
title: fileName
};

asperaWeb.startTransfer(transferSpec, connectSpec,
{
success : function (data){
data.transfer_specs.forEach(function (transfer) {
fileDownInfo[idx].uuid = transfer.uuid;
fileDownInfo[idx].downloadFlag = true;
});
},
error : function (e){
}
});
}

If the Aspera client already has a file to download, it seems that Aspera HSTS skips it without actually downloading it, because the overwrite_policy of the transferSpec code above is always.

But Aspera Connect's log (aspera-scp-transfer.0) will record "status=success" for the file being downloaded.
Do you think the following API would be helpful to confirm that the file transfer has been completed, as in this case?

---> https://github.com/IBM/aspera-sdk-js/blob/3ccc4a0/src/models/models.ts#L400

export type TransferStatus = 'failed'|'completed'|'running'|'queued'|'removed'|'canceled'|'orphaned'|'paused';

export interface AsperaSdkTransfer {
/** The ID of the transfer /
uuid: string;
/
* The transferSpec that started the transfer (secrets redacted) /
transfer_spec: TransferSpec;
/
* ISO date string when transfer was started /
// add_time: string; // FIXME: Not yet added in SDK
/
* The name of the current file being transferred /
current_file: string;
/
* The count of files being transferred /
file_counts: {
/
* Number of files attempted /
attempted: number;
/
* Number of files completed /
completed: number;
/
* Number of files failed /
failed: number;
/
* Number of files skipped /
skipped: number;
};
/
* ISO date string when transfer finished (empty string if not finished) /
end_time: string;
/
* The path opened in Explorer/Finder when user clicks 'Open Containing Folder' in the application /
explorer_path: string;
/
* The status of the transfer /
status: TransferStatus;
/
* The transfer error description if the status is error /
error_desc: string;
/
* The transfer error code (SSH or HTTP) if the status is error /
error_code: number;
/
* The number of bytes written to storage for this transfer /
bytes_written: number;
/
* The number of bytes expected to be written to storage for this transfer /
bytes_expected: number;
/
* The current calculated rate of the fasp transfer /
calculated_rate_kbps: number;
/
* The time the transfer has been running in microseconds /
elapsed_usec: number;
/
* The percentage of the transfer 0 - 1 (0.6 = 60%) /
percentage: number;
/
* Remaining time in microseconds /
// remaining_usec: number; // FIXME: Not yet added in SDK
/
* The title of the transfer */
title: string;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant