【问题标题】:Python Boto S3 to work with Custom Domains in Amazon S3Python Boto S3 与 Amazon S3 中的自定义域一起使用
【发布时间】:2011-01-22 21:24:42
【问题描述】:

如何将 Python Boto 库与 S3 一起使用,其中它生成的 URL 将是我的 CNAME 到 Amazon S3 服务器的子域。

默认情况下,它使用默认格式 BUCKETNAME.s3.amazonaws.com 但 S3 支持使用 CNAME 的自定义域别名(因此您可以使用 custom.domain.com -> CNAME -> custom.domain .com.s3.amazonaws.com,其中“custom.domain.com”是存储桶。AWS Documentation

我看到boto库有boto.s3.connection.SubdomainCallingFormat和类boto.s3.connection.VHostCallingFormat...

任何人都知道如何设置 boto.s3,其中生成 URL 用于我自己的自定义域而不是默认域?

【问题讨论】:

    标签: python subdomain cname boto amazon-s3


    【解决方案1】:
    1. 您的 CNAME 记录必须已经指向您的 S3 存储桶。
    2. 您的 S3 存储桶还需要命名为 custom.domain.com
    3. 验证您可以在浏览器中从 custom.domain.com 访问您的文件。

    完成后,我编写的以下 sn-p 将打印密钥中所有文件的 URL:

    import sys
    import boto.s3
    from boto.s3.connection import VHostCallingFormat
    from boto.s3.connection import S3Connection
    
    def main():
        access_key = "<AWS_ACCESS_KEY>"
        secret_key = "<AWS_SECRET_KEY>"
        bucket = "custom.domain.com"
    
        # assuming you have your files organized with keys
        key_prefix = "css"
        key_prefix = key_prefix + "/"
    
        conn = S3Connection(access_key, secret_key, calling_format=VHostCallingFormat())
        bucket = conn.get_bucket(bucket)
    
        # get all the keys with the prefix 'css/' inside said bucket
        keys = bucket.get_all_keys(prefix=key_prefix)
    
        for k in keys:
            print k.generate_url(3600, query_auth=False, force_http=True)
    
        # output:
        # http://custom.domain.com/css/ie.css
        # http://custom.domain.com/css/print.css
        # http://custom.domain.com/css/screen.css
        # http://custom.domain.com/css/style.min.css
    
    if __name__ == '__main__':
        main()
    

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 1970-01-01
      • 2012-03-12
      • 2017-03-23
      • 1970-01-01
      • 2011-06-29
      • 2010-11-30
      • 2015-11-12
      • 2015-12-26
      相关资源
      最近更新 更多