Globus Toolkit® 3.2 GridFTP Release Notes

GridFTP is a Pre-WS component that provides a high-performance, secure, reliable data transfer protocol optimized for high-bandwidth wide-area networks. The GridFTP protocol is based on FTP, the highly-popular Internet file transfer protocol.

The 3.2 release includes contain important bug fixes and improvements on existing functionality.  Improvements include support for platform independent, machine parseable, file info (MLST and MLSD commands), a new checksum command (cksm), support for the Unix chmod command, and support for file globbing and directory moves, i.e. globus-url-copy is no longer restricted to a single file. globus-url-copy also now has command line options for all the equivalent client library functionality.

Wufptd based server, tools, and libraries

Bug Fixes

  • 555 chmod functionality in GridFTP library?
  • 798 modification_time function uses assumes MDTM result is in local time zone
  • 1045 Assertion eof_cb_ent != GLOBUS_NULL failed in file globus_ftp_control_data.c
  • 1268 need passive mode for directory listings when using ftp_client library
  • 1306 "reached end of file" error
  • 1309 multiple file FTP's seem to hang
  • 1365 >4GB file transfers broken with '-p N'
  • 1398 GridFTP server v1.10 hangs on zero-length partial file retreive
  • 1449 memory leak in ftp_client
  • 1534 LIST commands shouldn't use active connections
  • 1600 GridFTP doesn't work in the background
  • 1617 MLSD behaves badly on inaccessible files
  • 1648 3.2beta globus-url-copy unnecessarily noisy

Server Updates

  • MLST: machine parsable single file info over control channel
  • MLSD: machine parsable directory listings over data channel
  • OPTS MLST: set the information that you wish to receive via the MLST/MLSD commands
  • CKSM: get a checksum (currently only MD5 is supported) of full or partial file.

Client Updates

  • ftp:
    • globus_ftp_client_mlst
    • globus_ftp_client_machine_list (mlsd)
    • globus_ftp_client_cksm
    • globus_ftp_client_chmod
  • gass copy:
    • globus_gass_copy_glob_expand_url: expand a file or ftp url with wildcards into a list of matching urls
    • globus_gass_copy_mkdir: create a directory from file or ftp url

Globus-url-copy Changes

New features/options are marked by **:
 globus-url-copy [options] <sourceURL> <destURL>
 globus-url-copy [options] -f <filename>
** <sourceURL> may contain wildcard characters * ? and [ ] character ranges
 in the filename only.
** Any url specifying a directory must end with a forward slash '/'
** If <sourceURL> is a directory, all files within that directory will
 be copied.
** <destURL> must be a directory if multiple files are being copied.
** Note:  If the ftp server from the source url does not support the MLSD
        command, this client will attempt to transfer subdirectories as
        files, resulting in an error.  Recursion is not possible in this
        case, but you can use the -c (continue on errors) option in order
        to transfer the regular files from the top level directory.
        **GridFTP servers prior to version 1.17 (Globus Toolkit 3.2)
          do not support MLSD.
   -help | -usage
        Print help
        Print the version of this program
        Print the versions of all modules that this program uses
   -c | -continue-on-error
        Do not die after any errors.  By default, program will exit after
        most errors.
   -a | -ascii
        Convert the file to/from ASCII format to/from local file format
   -b | -binary
        Do not apply any conversion to the files. *default*
** -f <filename>
        Read a list of url pairs from filename.  Each line should contain
        <sourceURL> <destURL>
        Enclose URLs with spaces in double qoutes (").
        Blank lines and lines beginning with # will be ignored.
** -r | -recurse
        Copy files in subdirectories
** -fast
        Recommended when using GridFTP servers. Use MODE E for all data
        transfers, including reusing data channels between list and transfer
** -q | -quiet 
        Suppress all output for successful operation
** -v | -verbose 
        Display urls being transferred
   -vb | -verbose-perf 
        During the transfer, display the number of bytes transferred
        and the transfer rate per second.  Show urls being transferred
   -dbg | -debugftp 
        Debug ftp connections.  Prints control channel communication
        to stderr
** -rst | -restart 
        Restart failed ftp operations.
** -rst-retries <retries>
        The maximum number of times to retry the operation before giving
        up on the transfer.  Use 0 for infinite.  Default is 5.
** -rst-interval <seconds>
        The interval in seconds to wait after a failure before retrying
        the transfer.  Use 0 for an exponential backoff.  Default is 0.
** -rst-timeout <seconds>
        Maximum time after a failure to keep retrying.  Use 0 for no
        timeout.  Default is 0.
** -rp | -relative-paths
       The path portion of ftp urls will be interpereted as relative to the
       user's starting directory on the server.  By default, all paths are
       root-relative.  When this flag is set, the path portion of the ftp url
       must start with %2F if it designates a root-relative path.
   -s  <subject> | -subject <subject>
        Use this subject to match with both the source and dest servers
   -ss <subject> | -source-subject <subject>
        Use this subject to match with the source server
   -ds <subject> | -dest-subject <subject>
        Use this subject to match with the destionation server
   -tcp-bs <size> | -tcp-buffer-size <size>
        specify the size (in bytes) of the buffer to be used by the
        underlying ftp data channels
   -bs <block size> | -block-size <block size>
        specify the size (in bytes) of the buffer to be used by the
        underlying transfer methods
   -p <parallelism> | -parallel <parallelism>
        specify the number of parallel data connections should be used.
   -notpt | -no-third-party-transfers
        turn third-party transfers off (on by default)
   -nodcau | -no-data-channel-authentication
        turn off data channel authentication for ftp transfers
** -dcsafe | -data-channel-safe
        set data channel protection mode to SAFE
** -dcpriv | -data-channel-private
        set data channel protection mode to PRIVATE
** -off | -partial-offset
        offset for partial ftp file transfers, defaults to 0
** -len | -partial-length
        length for partial ftp file transfers, used only for the source url,
        defaults the full file.