/ / Python Boto S3 pre prácu s vlastnými doménami v Amazon S3 - python, subdoména, cname, boto, amazon-s3

Python Boto S3 pracovať s vlastnými doménami v Amazon S3 - python, subdoména, cname, boto, amazon-s3

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
  1. Vaše záznamy CNAME musia už ukazovať na váš vedro S3.
  2. Váš S3 bucket musí byť tiež pomenovaný custom.domain.com
  3. 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()