You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 32 Next »

Trebuchet is a multi-scheme file-transfer API and client library written in Java.

Purpose

The principal aim of this library is to provide an abstraction layer over the standard file-related operations (such as directory listing, directory creation, file transfer and file deletion) which allows switching between protocols without alteration of either source code or scripting. The library is also designed to be extensible so that new protocol support can be added in a reasonably clean manner.

Currently, there are two ways in which Trebuchet can be utilized:

Certain capabilities, such as restarting operations and inspecting the binary "cache" files, are also available from the command-line. There are further plans to provide an Eclipse-based RCP Trebuchet client for easy management of file transfers across multiple hosts.

Features

  1. Full support for UNIX-style operations (ls, touch, mkdir, cp, mv, rm) locally and via the SSH/SCP protocols.
  2. Support for all of these operations except touch via GRIDFTP and WEBDAV.
  3. GSI/certificate-based authentication/authorization (SSH and GRIDFTP).
  4. One-hop third-party transfers over mixed protocols (e.g., SCP on host A to GRIDFTP on host B) handled automatically.
  5. Two ways of achieving file transfer or deletion:
    • By specifying exact locations/paths;
    • By scanning or listing.
  6. Fully recursive pattern-based scanning (using the '' and '*' wildcard characters).
  7. All GRIDFTP options available in the jglobus library are exposed for configurability; in particular:
    • TCP buffer size
    • setting active mode on the target
  8. Automated support for both LIST and MLST/MLSD (GRIDFTP); options for forcing existence checking through the LIST command.
  9. Full access to source and target paths before and after operations.
  10. Thread-pooled parallel copy operations.
  11. Fail-over and retry capabilities on a file-by-file (and, with Gridftp, partial-file) basis.
  12. Flexibility in the kind and number of events the user can opt to receive.
  • No labels