簡體   English   中英

Python Boto S3可與Amazon S3中的自定義域一起使用

[英]Python Boto S3 to work with Custom Domains in Amazon S3

我如何在S3中使用Python Boto庫,它生成的URL將是我的CNAME到Amazon S3服務器的子域。

默認情況下,它使用默認格式BUCKETNAME.s3.amazonaws.com,但S3支持使用CNAME的自定義域別名(因此您可以使用custom.domain.com-> CNAME-> custom.domain.com.s3.amazonaws.com,其中“ “ custom.domain.com”是存儲桶。AWS 文檔

我看到boto庫具有boto.s3.connection.SubdomainCallingFormat和類boto.s3.connection.VHostCallingFormat ...

任何人都知道如何設置boto.s3,其中生成URL是針對我自己的自定義域的,而不是默認域的?

  1. 您的CNAME記錄必須已經指向您的S3存儲桶。
  2. 您的S3存儲桶也需要命名為custom.domain.com
  3. 確認您能夠在瀏覽器中從custom.domain.com訪問文件。

完成此操作后,我編寫的以下代碼片段會將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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM