2010-03-02 4 views
4

URL이 생성하는 S3에서 Python Boto 라이브러리를 사용하려면 Amazon S3 서버에 대한 CNAME의 하위 도메인이 될 수 있습니다. 기본적으로Amazon S3의 사용자 정의 도메인에서 작동하는 Python Boto S3

이 기본 형식을 사용 BUCKETNAME.s3.amazonaws.com하지만 S3는 CNAME을 사용하여 사용자 정의 도메인 앨리어싱을 지원 (그래서 당신은 할 수 있습니다 custom.domain.com -> CNAME -> custom.domain.com.s3 .amazonaws.com "custom.domain.com는"버킷입니다. 나는 BOTO 라이브러리 boto.s3.connection.SubdomainCallingFormat 수업 boto.s3.connection.VHostCallingFormat을 가지고 볼 AWS Documentation

...

누구나 boto.s3을 어떻게 설정할 수 있는지 알고 있습니다. URL 생성은 기본값 대신 내 자신의 맞춤 도메인 용입니까?

답변

2
  1. CNAME 레코드가 이미 S3 버킷을 가리키고 있어야합니다.
  2. S3 버킷의 이름도 custom.domain.com이어야합니다.
  3. 브라우저의 custom.domain.com에서 파일에 액세스 할 수 있는지 확인하십시오.

    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() 
    
    :이 작업이 일단

는, 다음 코드는 내가 키 내의 모든 파일에 대한 URL의 인쇄됩니다 썼다

관련 문제