当前位置: 首页>>代码示例>>Python>>正文


Python CloudFrontConnection.create_invalidation_request方法代码示例

本文整理汇总了Python中boto.cloudfront.CloudFrontConnection.create_invalidation_request方法的典型用法代码示例。如果您正苦于以下问题:Python CloudFrontConnection.create_invalidation_request方法的具体用法?Python CloudFrontConnection.create_invalidation_request怎么用?Python CloudFrontConnection.create_invalidation_request使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在boto.cloudfront.CloudFrontConnection的用法示例。


在下文中一共展示了CloudFrontConnection.create_invalidation_request方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: invalidate

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def invalidate(paths):
    try:
        print("Invalidating...")
        conn = CloudFrontConnection()
        conn.create_invalidation_request(AWS_CF_DISTRIBUTION_ID, paths)
        return True
    except:
        return False
开发者ID:eikenb,项目名称:aws-tools,代码行数:10,代码来源:invalidater.py

示例2: handle_noargs

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
    def handle_noargs(self, **options):
        try:
            access_key = settings.AWS_ACCESS_KEY_ID
            secret_key = settings.AWS_SECRET_ACCESS_KEY
            distribution = settings.AWS_CF_DISTRIBUTION_ID
            static_url = settings.STATIC_URL

        except AttributeError:
            raise ImproperlyConfigured(
                'Please specify AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,'
                ' AWS_CF_DISTRIBUTION_ID in settings\n')

        super(Command, self).handle_noargs(**options)

        invalid_files = self.copied_files + self.symlinked_files
        if not len(invalid_files):
            self.stdout.write('Nothing to invalidate\n')
            return

        self.stdout.write('Invalidating files...\n')
        # we need add static prefix to each address
        static_prefix = urlsplit(static_url).path
        invalid_files = \
            [urljoin(static_prefix, path) for path in invalid_files if path]

        invalidation_step = 1000
        invalication_max_num = 3
        invalidation_max_files = invalidation_step * invalication_max_num

        def dump(invalid_files):
            import tempfile
            from django.utils import simplejson
            dump = tempfile.NamedTemporaryFile(delete=False)
            dump.write(simplejson.dumps(invalid_files, indent=2))
            dump.close()
            return dump.name

        if len(invalid_files) > invalidation_max_files:
            raise AssertionError(
                "There are more than %s files to invalidate, "
                "AWS doesn't support it at the moment.\n"
                "File names to be invalidated dumped to JSON file %s, "
                "please invalidate manually\n"""
                % (invalidation_max_files, dump(invalid_files)))

        conn = CloudFrontConnection(access_key, secret_key)

        try:
            for i in xrange(invalication_max_num):
                thousand = invalid_files[i:i + invalidation_step]
                if not thousand: break
                conn.create_invalidation_request(distribution, thousand)
        except exception.CloudFrontServerError, message:
            self.stderr.write('Error while processing:\n\n%s\n\n'
                'Unprocessed files dumped to JSON file %s, '
                'please invalidate manually\n'
                % (message, dump(invalid_files)))
开发者ID:user2589,项目名称:django-common-utils,代码行数:59,代码来源:icollect.py

示例3: invalidate_paths

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def invalidate_paths(deploy_type, paths, *args, **kwargs):
    """
    Helper function, create an invalidation request for CloudFront distribution
    :param deploy_type: The deploy type
    :param paths: The paths array
    """
    from boto.cloudfront import CloudFrontConnection
    
    # TODO chunking invalidation to prevent error
    distributions = get_conf('AWS_DISTRIBUTION_ID', deploy_type=deploy_type)

    if isinstance(distributions, list):
        distributions = distributions
    else:
        distributions = [distributions]

    for distribution in distributions:
        conn_cf = CloudFrontConnection(get_conf('AWS_ACCESS_KEY_ID',  deploy_type=deploy_type),
                                       get_conf('AWS_SECRET_ACCESS_KEY',  deploy_type=deploy_type))
        conn_cf.create_invalidation_request(distribution, paths)
开发者ID:ciotto,项目名称:django-static-sites,代码行数:22,代码来源:utilities.py

示例4: invalidate_cache

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def invalidate_cache(ec2, env, source):
	""" Invalidate CloudFront cache for each machine with a Cloudfront Distribution ID"""
	# NOTE: Creating distributions is not yet supported, only cache invalidation
	cfc = CloudFrontConnection(ec2.access_key,ec2.secret_key)
	for machine in env:
		if 'cloudfront' in machine.keys():
			print 'Invalidating cache for %s' % machine['name']
			cloudfront = machine['cloudfront'] # Cloudfront Distribution ID

			media_files = []
			static_dir = os.path.join(source,'project','static')
			for root, dirs, files in os.walk(static_dir):
				if '.svn' in dirs: dirs.remove('.svn')
				key_root = root.split('static')[1]

				for file in files:
					filename = os.path.join(root,file)
					if os.path.isfile(filename):
						media_files.append(os.path.join(key_root,file))

			cfc.create_invalidation_request(cloudfront, media_files)
开发者ID:chrisgilmerproj,项目名称:builder,代码行数:23,代码来源:builder.py

示例5: do_invalidate

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def do_invalidate(distrib_id, inval_keys, creds):
    '''
    Send a CloudFront invalidation request for the given objects.
    '''
    cf = CloudFrontConnection(**creds.as_dict())
    distrib = get_distribution(cf, distrib_id)
    req = cf.create_invalidation_request(distrib.id, inval_keys)

    pbar = s3pub.progress.InvalidationProgressBar(req.id)
    for _ in pbar(Monitor(cf, distrib_id, req.id)):
        pass
    print('Done.')
开发者ID:marmida,项目名称:s3pub,代码行数:14,代码来源:invalidate.py

示例6: do_invalidation

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
 def do_invalidation(self):
     files = sys.argv[1:]
     if len(files) > 0:
         print 'Sending invalidation request for the following files:'
         for f in files:
             print f
             conn = CloudFrontConnection(settings.AWS_ACCESS_KEY, settings.AWS_SECRET_ACCESS_KEY)
             req = conn.create_invalidation_request(settings.AWS_CF_DISTRIBUTION_ID, files)
             print req.status
     else:
         self.help()
     sys.exit()
开发者ID:curlee,项目名称:Cloudfront-Invalidator,代码行数:14,代码来源:invalidate.py

示例7: Level3Service

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
import sys, datetime, settings
from level3client import Level3Service
from boto.cloudfront import CloudFrontConnection

urls = sys.argv
urls.remove('invcache.py')
scope = settings.level3scope
key_id = settings.level3key
secret = settings.level3secret
service = Level3Service(key_id, secret, method='POST')
result = service('invalidations/%s' % scope, post_data="""
<paths>
%s
</paths>
""" % ('\n'.join(['<path>%s</path>' % url for url in urls]))
)

conn = CloudFrontConnection( settings.awscfkey, settings.awscfsecret )
invreq = conn.create_invalidation_request( settings.awscfdistribution, urls)

print "Level3 Invalidation Request:"
print result.dom.toprettyxml()

print "CloudFront Invalidation Status:"
print invreq.status
开发者ID:edgeflip,项目名称:ef_systems_scripts,代码行数:27,代码来源:invalidate.py

示例8: CloudFrontConnection

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
#!/usr/bin/env python

__author__    = "Stamped ([email protected])"
__version__   = "1.0"
__copyright__ = "Copyright (c) 2011-2012 Stamped.com"
__license__   = "TODO"

import Globals
import datetime, os, sys, urllib2, utils
import keys.aws

from boto.cloudfront import CloudFrontConnection

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__)
    args = parser.parse_args()
    
    files = [ '/assets/css/screen.css', '/assets/css/styles.css' ]
    
    conn = CloudFrontConnection(keys.aws.AWS_ACCESS_KEY_ID, keys.aws.AWS_SECRET_KEY)
    
    # NOTE: this cloudfront distribution id is hardcoded to the static.stamped.com distro
    distribution_id = 'E17S1XTPOFC1EQ'
    print conn.create_invalidation_request(distribution_id, files)

开发者ID:Stamped,项目名称:Stamped,代码行数:28,代码来源:invalidate_cloudfront_cache.py

示例9: invalidate_all

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def invalidate_all(aws_access_key, aws_secret_key, cloudfront_distribution):
    print("Invalidating all")
    cloudfront_connection = CloudFrontConnection(aws_access_key, aws_secret_key)
    cloudfront_connection.create_invalidation_request(cloudfront_distribution, "/*")
开发者ID:pythonanywhere,项目名称:microbit-deploy,代码行数:6,代码来源:upload_site.py

示例10: CloudFrontConnection

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
files = ['/css/style.css',
    '/favicon.ico',
    '/images/harper_6.jpg',
    '/images/glider.png',
    '/js/scripts.js',
    '/css/style.css',
    '/images/DateHeaderIco.png',
    '/images/PostComLeft.png',
    '/images/PostComRight.png',
    '/images/PostDetailsTagsIco.png',
    '/images/RelatedPostsHeading.png',
    '/images/RelatedPostsLi.png',
    '/images/CommentsListHeading.png',
    '/images/CommentsFormHeading.png',
    '/images/SubmitComment.png',
    '/images/SubmitComment.png',
    '/images/SubmitComment.png',
    '/images/CategIco.png',
    '/images/tr.png',
    '/images/tl.png',
    '/images/br.png',
    '/images/bl.png',
    '/images/SRLBkg',
    '/images/SRRBkg',
    '/images/close2.png',]


conn = CloudFrontConnection()
print conn.create_invalidation_request(AWS_CF_DISTRIBUTION_ID, files)
开发者ID:dariovasconcelos,项目名称:Spam-Involuntario,代码行数:31,代码来源:invalidate_cf_cdn.py

示例11: create_invalidation

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def create_invalidation(article, settings):
    cloudfront = CloudFrontConnection(settings.aws_access_key_id, settings.aws_secret_access_key)
    inval_req = cloudfront.create_invalidation_request(settings.cloudfront_distribution_id_cdn,
                                                       ["/articles/" + article + "/*"])
    assert isinstance(inval_req, InvalidationBatch), \
        "Invalidation request did not return expected object."
开发者ID:gnott,项目名称:elife-bot,代码行数:8,代码来源:cloudfront_provider.py

示例12: invalidate_cloudfront

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def invalidate_cloudfront():
    conn = CloudFrontConnection(env.cdn['aws_access_key'], env.cdn['aws_secret_key'])
    print conn.create_invalidation_request(env.cdn['aws_cloudfront_id'], env.cdn['files'])
    print 'Invalidated cloudfront cache for ...%s' % '\n\t '.join(env.cdn['files'])
    env.cdn['files'] = []
开发者ID:hactar-is,项目名称:static-site,代码行数:7,代码来源:fabfile.py

示例13: clear_cloudfront_cache

# 需要导入模块: from boto.cloudfront import CloudFrontConnection [as 别名]
# 或者: from boto.cloudfront.CloudFrontConnection import create_invalidation_request [as 别名]
def clear_cloudfront_cache(base_dir,index_file,dir_prefix='',passn=0):
    
    base_dir  = os.path.abspath(base_dir)
    all_files = get_files_from_dir(base_dir)
    
    if(os.path.exists(index_file)):
        data = file(index_file).read()
        os.unlink(index_file+'.back')
        file(index_file+'.back','w').write(data)
    else:
        data = ''
        file(index_file+'.back','w').write('')
        
    index = {}
    data = data.split('\n')
    for line in data:
        if not line: 
            continue
        path,md5 = line.split('\t#\t')
        index[path] = md5
    
    new_files,new_files_raw = get_modified_files(base_dir,all_files,index,dir_prefix)
    
    for filename in index.iterkeys():
        if filename not in all_files:
            next = False
            for it in IGNORE:
                if it in filename:
                    next = True
            if next:
                continue
            new_files.append(os.path.join(dir_prefix,filename.strip('/')))
            new_files_raw.append(filename)
    
    if new_files:
        for filename in new_files:
            print 'Modified: %s' % filename
    else:
        print 'No files were modified.\n'
        sys.exit()
		
    print '\nUploading %s files\n' % len(new_files) 
        
    inp = ''
    while (inp != 'y' and inp != 'n'):
        inp = raw_input('Upload changes to CloudFront(y/n): ')
        
        
    if inp == 'y':
        try:
            conn = CloudFrontConnection(AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY)
            k = 0
            for i in xrange(0,len(new_files),800):
                if k < passn:
                    k += 1
                    continue
                res = True
                res = conn.create_invalidation_request(AWS_CF_DISTRIBUTION_ID, new_files[i:i+900]) 
                if res:
                    print '\nInvalidation request created'
                    for filename in new_files_raw[i:i+800]:
                        fc = file(base_dir+filename).read()
                        index[filename] = hashlib.md5(fc).hexdigest()
                if k >= (passn+2):
                    print '\nToo many files. Repeat update after 15 minutes.' 
                    break
                k += 1
        except Exception,e:
            save_index(index_file,index)
            sys.exit('\nError: %s' % e)
        
        save_index(index_file,index)            
开发者ID:jacob-carrier,项目名称:code,代码行数:74,代码来源:recipe-577779.py


注:本文中的boto.cloudfront.CloudFrontConnection.create_invalidation_request方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。