Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Support path-style access URLs #66

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Sep 26, 2014

  1. Support path-style access URLs

    There are two ways to generate S3 object URLs, virtual-hosted style
    URLs vs. path-style URLs [1]:
    
    - Virtual-hosted-style: `http://bucket.s3.amazonaws.com`
    - Path-style: `http://s3.amazonaws.com/bucket`
    
    Virtual-hosted-style is Amazon's preferred default, however HTTPS is
    not compatible with all virtual-hosted-style URLs.  Specifically,
    virtual-hosted-style buckets with dots in their names always cause
    HTTPS cert validation errors, as per RFC 2818 [2][3]:
    
        https://foo.bar.s3.amazonaws.com/key
    
    Path-style access works fine with HTTPS, without forcing a bucket rename:
    
        https://s3.amazonaws.com/foo.bar/key
    
    This commit allows configuring the client for path-style access via
    the cred map:
    
        (let [cred {:access-key ...
                    :secret-key ...
                    :path-style-access? true}]
          (generate-presigned-url cred bucket key))
    
    Note that when using path style access you may need to manually specify your
    region-specific S3 endpoint [1]:
    
        (let [cred {...
                    :path-style-access? true
                    :endpoint "s3-us-west-1.amazonaws.com"}]
          ...)
    
    [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html
    [2]: http://www.ietf.org/rfc/rfc2818.txt
    [3]: http://shlomoswidler.com/2009/08/amazon-s3-gotcha-using-virtual-host.html
    elliot42 committed Sep 26, 2014
    Configuration menu
    Copy the full SHA
    66b959f View commit details
    Browse the repository at this point in the history