Ako môžem použiť knižnicu Python Boto so S3, kde URL, ktoré vygeneruje, bude mojou subdoménou CNAME d na server Amazon S3.
Štandardne používa predvolený formát BUCKETNAME.s3.amazonaws.com ale S3 podporuje aliasovanie vlastnej domény pomocou CNAME (takže môžete mať custom.domain.com -> CNAME -> custom.domain.com.s3.amazonaws.com kde "custom.domain.com" je kbelík. Dokumentácia AWS
Vidím, že knižnica boto má boto.s3.connection.SubdomainCallingFormat a class boto.s3.connection.VHostCallingFormat ...
Každý, kto vie, ako môžem nastaviť boto.s3, kde generovanie URL "s pre vlastnú vlastnú doménu namiesto predvolené?
odpovede:
2 pre odpoveď č. 1- Vaše záznamy CNAME musia už ukazovať na váš vedro S3.
- Váš S3 bucket musí byť tiež pomenovaný custom.domain.com
- Skontrolujte, či máte vo svojom prehliadači prístup k súborom z lokality custom.domain.com.
Akonáhle to urobíte, nasledujúci úryvok, ktorý som napísal, vytlačí adresu URL na všetky súbory v rámci kľúča:
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()