Як використовувати бібліотеку Python Boto з S3, де URL-адреса, яку він створює, буде моїм субдоменом CNAME d на сервері 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, для мого власного домену замість типового?
Відповіді:
2 для відповіді № 1- Ваші записи CNAME вже повинні вказувати на ваш сегмент S3.
- Ваші коробки S3 також повинні бути названі custom.domain.com
- Переконайтеся, що ви маєте доступ до файлів з 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()