Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 3, 2015
  1. Matt Domsch

    update pypi metadata

    mdomsch authored
    update license text to reflect GPL v2+
    add classifiers
    add Matt(s) as maintainers, email to s3tools-bugs
  2. Matt Domsch

    sign uploads to pypi

    mdomsch authored
  3. Matt Domsch

    invoke python2 build ... with python2

    mdomsch authored
    This ensures that the wrapper script which starts s3cmd inside an egg
    uses python2 explicitly rather than python, which on some systems, is
  4. Matt Domsch

    move from distutils to setuputils

    mdomsch authored
    setuputils is newer than distutils, and is supported on python 2.6 and
    higher like we currently support.  This also packages everything into
    eggs for distribution.  Maybe this will reduce the number of people
    with bugs regarding where s3cmd's modules got installed.
  5. Matt Domsch

    refresh manpage after capitolization patch

    mdomsch authored
    Commit a97f3ba capitolized some works in the help page. Make the
    manpage match.
  6. Matt Domsch

    Don't crash when a proxy returns an invalid XML error document

    mdomsch authored
    Give us a chance to see it, and maybe continue.
  7. Matt Domsch
  8. Matt Domsch use install_requires

    mdomsch authored
    notes that the old keyword 'requires' no longer works, and we need to
    use 'install_requires' instead.
Commits on Feb 2, 2015
  1. Matt Domsch
  2. Matt Domsch

    run-tests: add -c <config file>

    mdomsch authored
    This lets us run the test suite against a different configuration
    file, likely pointing at a different S3 clone storage service.
Commits on Jan 31, 2015
  1. Matt Domsch

    Don't retry in response to HTTP 405 error (#422)

    mdomsch authored
    HTTP 405 "Method Not Allowed" is a permanent error.  No sense retrying.
    Just raise the error and let upper levels do as they wish.
    There is no indication that 405 is returned on a PUT call, so we don't
    include this test in send_file().
  2. Matt Domsch
  3. Matt Domsch

    fix signurl

    mdomsch authored
    time_to_epoch() is in Utils.
  4. Matt Domsch
  5. Matt Domsch
Commits on Jan 30, 2015
  1. Matt Domsch


    mdomsch authored
    Commit 8e4c0d4
    renamed the function Utils.sign_url() to be sign_url_v2().  Fix the
    caller thereof.
Commits on Jan 29, 2015
  1. Matt Domsch

    Merge pull request #453 from lamby/master

    mdomsch authored
    Support relative expiry times in signurl
  2. Matt Domsch

    Merge pull request #455 from andrewgaul/sort-bucket-names

    mdomsch authored
    Sort s3cmd ls output by bucket name
  3. Matt Domsch

    Merge pull request #466 from andrewgaul/capitalization

    mdomsch authored
    Capitalize command descriptions for consistency
  4. Petri Pellinen

    Add support for display names in --acl-revoke (#223)

    Petri Pellinen authored ppe committed
    Current --acl-revoke only accepts user canonical ids as grantee specification.
    'info' command lists users' display names in ACL entries.
    Adding support for display names in --acl-revoke makes it easy to revoke
    ACLs based on info command output. This alleviates problem outlined in #223
Commits on Jan 27, 2015
  1. Matt Domsch

    Correct exclude pattern for python 2.4

    mdomsch authored
    As in the previous patch, even that was incorrect for python 2.4
    still.  Python 2.4 glob.fnmatch.translate() yields u'\\.snapshot\\/$'
    for '.snapshot/'.  Fix the match.
  2. Matt Domsch

    Fix directory exclusions (#467)

    mdomsch authored
    Different versions of python append different strings to the pattern
    created when turning a glob into a regular expression.  For example,
    the pattern:
    on python 2.4, glob.fnmatch.translate() would yield '.snapshot/',
    while on python 2.6 and above, we get u'\.snapshot\\/\\Z(?ms)'.
    Our test for "is this pattern a directory" was thus failing on python
    2.6, testing for 'endswith('/').  Whoops.
    This patch tests for both types of pattern endings now.
    This fixes #467 and fixes Fedora Infrastructure's sync of EPEL content
    into S3 regional mirrors.
Commits on Jan 23, 2015
  1. Matt Domsch

    reduce "Forwarding request to %s' % region" from warning to info

    mdomsch authored
    No need to spam stderr with something we are properly handling.  info
    level lets the message appear with -v or --debug loglevels.
Commits on Jan 22, 2015
  1. Andrew Gaul
Commits on Jan 21, 2015
  1. Matt Domsch

    reduce use of os.system() in run-tests stdin tests

    mdomsch authored
    Instead of using os.system(), we can open the file that we want to put
    via stdin, and pass that file handle to test_s3cmd(), which gets it to
    the Popen() call as the stdin argument.  This way, any failure in
    s3cmd we can capture and report like for all other tests.
  2. Matt Domsch

    use close_fds = True in calls to Popen()

    mdomsch authored
    It's always a good idea to close any extra open file descriptors when
    starting subprocesses.  From the subprocess.Popen() manpage:
        If close_fds is true, all file descriptors except 0, 1 and 2 will
        be closed before the child process is executed.
    We call Popen in two places: executing gpg to encrypt or decrypt a
    file, and in when executing s3cmd during the tests.  This
    patch adds close_fds = True in both cases.
Commits on Jan 20, 2015
  1. Matt Domsch

    testsuite: add Multipart Put large file from stdin

    mdomsch authored
    This adds a test to put a large file (> multipart-chunk-size-mb) from
  2. Matt Domsch

    add multipart test

    mdomsch authored
    Add a multipart test, uploading a 16MB file as a series of 5MB parts.
    This exercises a code path not previously tested in the test suite.
  3. Matt Domsch

    add test for put from stdin

    mdomsch authored
    There may be a cleaner way to do this, but I like the way this mimics
    a user's command line invocation.
  4. Matt Domsch

    Multipart: send 2nd+ chunks from start of buffer

    mdomsch authored
    When doing a multipart upload from stdin, we were reading the next
    part from stdin into a buffer, and then sending down an offset that
    was from the start of the stdin, not from the start of the buffer we
    just read into.  Whoops.
    This patch fixes it, so we send down offset=0 when sending down a
    buffer, so we start from the beginning of the buffer.
    This fixes multipart stdin uploads of >1 chunk.
  5. Matt Domsch

    in S3.send_file(), don't conditionalize on stdin

    mdomsch authored
    If we have been given a buffer to send, calculcate the checksum on
    that, regardless of if it's also from stdin.  The stdin part doesn't
    matter, and it's possible we've been given a buffer for some other
    reason.  Just operate on the buffer we're given.
  6. Matt Domsch

    fix uploads from stdin (#464)

    mdomsch authored
    Uploads from stdin broke after the v4 signing code went into place, as
    we were unconditionally trying to open an already open file handle (stdin),
    and we were reading from stdin twice (which can't work).
    Patch makes sure that during upload from stdin, since we have already
    read the data we care about into a buffer, don't read it again just to
    calculate the sha256 checksum.  Instead, simply run sha256 over the
    already-read buffer.
    Trivial spelling mistake in a message fixed too.
  7. Matt Domsch

    Fix multipart abortmp error message

    mdomsch authored
    The order of arguments was incorrect so the error message told the
    user to abort the multipart upload using incorrect syntax.
  8. Matt Domsch

    set content-type header for stdin from command line or Config()

    mdomsch authored
    We want to pass content-type, but we can't know it from stdin,
    so be explicit about where we get it, either from the command line or
  9. Matt Domsch

    Fix lack of SSL certificate checking libraries on older python

    mdomsch authored
    Commit ecee692 added back in SSL hostname checking when the python
    libraries supported it.  Really, it added it in unconditionally,
    forgetting that older pythons lacked some of the exported functions
    and exception classes needed to do that checking correctly.
    This patch lets older python 2.6 and 2.7 continue to work as before,
    without host name SSL certificate checking, because those versions
    don't have the new-enough ssl library to implement the checks.  I'm
    not backporting that into s3cmd either - you get what the python
    standard library for your system provides.
Something went wrong with that request. Please try again.