...
- Full support for UNIX-style operations (
ls
,touch
,mkdir
,cp
,mv
,rm
) locally and via the SSH/SCP protocols. - Support for all of these operations except
touch
via GRIDFTP and WEBDAV. - GSI/certificate-based authentication/authorization (SSH and GRIDFTP).
- Automatic one-hop handling of third-party transfers over mixed protocols (e.g., SCP on host A to GRIDFTP on host B).
- Two ways of achieving file transfer or deletion:
- By specifying exact locations/paths;
- By scanning or listing.
- Fully recursive pattern-based scanning (using the '*' and '**' wildcard characters; see UriPattern).
- All operations configured (using the available settings appropriate to the given protocol) via a general-purpose configuration object.
- All GRIDFTP options available in the
jglobus
library exposed for configurability; in particular, optimization settings such as:- TCP buffer size;
- setting active mode on the target.
- Automated support for both LIST and MLST/MLSD (GRIDFTP); options for forcing existence checking through the LIST command.
- Automated staging of files from UNITREE tape archive using GRIDFTP (= MSSFTP).
- Full access (i.e., by non-Trebuchet-related code), if so desired, to source and target paths during and after operations.
- Thread-pooled parallel copy operations.
- Automated use of multiple GRIDFTP connections for a given endpoint, when available, for non-striped operations.
- Fail-over and retry capabilities on a file-by-file basis.
- Flexibility in the kind and number of events the user can opt choose to receive.
...
Design overview
...
CONTENTS | TYPE | BYTE POSITION | ||
---|---|---|---|---|
status |
| 0 | ||
entry id |
| 1 | ||
previous id |
| 9 | ||
type |
| 17 | ||
symlinked parent |
| 18 | ||
mode |
| 19 | ||
links |
| 21 | ||
size |
| 25 | ||
modified |
| 33 | ||
user length |
| 41 | ||
group length |
| 45 | ||
relative dir length |
| 49 | ||
name length |
| 53 | ||
symlink length |
| 57 | ||
n = num properties |
| 61 | ||
property name i length |
| 65 + 8i | ||
property value i length |
| 69 + 8i | ||
user |
| 65 + 8n | ||
group |
| 65 + 8n + user length | ||
relative dir |
| 65 + 8n + user length + group length | ||
name |
| 65 + 8n + user length + group length + relative dir length | ||
symlink |
| 65 + 8n + user length + group length + relative dir length + name length | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="69d1c53f07e521b1-75bcd995-442c4d4f-a9efab29-376054b5f3848715203cfb7c"><ac:plain-text-body><![CDATA[ | property name i |
| 65 + 8n + user length + group length + relative dir length + name length + symlink length + Sum[0 <= j < i] property name j length | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="f7e8ce56cece59a6-7126d009-4b6a4565-bd0ba3ff-216a99a6541396b3a172330a"><ac:plain-text-body><![CDATA[ | property value i |
| 65 + 8n + user length + group length + relative dir length + name length + Sum[0 <= j < n] property name j length + Sum[0 <= j < i] property value j length | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="9d5c9234a0e5fde9-3746c101-4c454f7e-b916b074-668b1e6f02b320235475ba3b"><ac:plain-text-body><![CDATA[ | (end) |
| 65 + 8n + user length + group length + relative dir length + name length + Sum[0 <= j < n] property name j length + Sum[0 <= j < n] property value j length | ]]></ac:plain-text-body></ac:structured-macro> |
...