Skip to content
New issue

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

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

Already on GitHub? Sign in 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