Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  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. Automatic one-hop handling of third-party transfers over mixed protocols (e.g., SCP on host A to GRIDFTP on host B).
  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; see UriPattern).
  7. All operations configured (using the available settings appropriate to the given protocol) via a general-purpose configuration object.
  8. 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.
  9. Automated support for both LIST and MLST/MLSD (GRIDFTP); options for forcing existence checking through the LIST command.
  10. Automated staging of files from UNITREE tape archive using GRIDFTP (= MSSFTP).
  11. Full access (i.e., by non-Trebuchet-related code), if so desired, to source and target paths during and after operations.
  12. Thread-pooled parallel copy operations.
  13. Automated use of multiple GRIDFTP connections for a given endpoint, when available, for non-striped operations.
  14. Fail-over and retry capabilities on a file-by-file basis.
  15. Flexibility in the kind and number of events the user can opt choose to receive.

...

Design overview

...

CONTENTS

TYPE

BYTE POSITION

status

byte

0

entry id

long

1

previous id

long

9

type

byte

17

symlinked parent

byte

18

mode

char

19

links

int

21

size

long

25

modified

long

33

user length

int

41

group length

int

45

relative dir length

int

49

name length

int

53

symlink length

int

57

n = num properties

int

61

property name i length

int

65 + 8i

property value i length

int

69 + 8i

user

bytes

65 + 8n

group

bytes

65 + 8n + user length

relative dir

bytes

65 + 8n + user length + group length

name

bytes

65 + 8n + user length + group length + relative dir length

symlink

bytes

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

bytes

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

bytes

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>

...