Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1540)

Unified Diff: third_party/gsutil/boto/docs/source/cloudfront_tut.rst

Issue 12317103: Added gsutil to depot tools (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: added readme Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/boto/docs/source/cloudfront_tut.rst
diff --git a/third_party/gsutil/boto/docs/source/cloudfront_tut.rst b/third_party/gsutil/boto/docs/source/cloudfront_tut.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7f41ff15228440ddd9eb94cea22d9a713fc3847c
--- /dev/null
+++ b/third_party/gsutil/boto/docs/source/cloudfront_tut.rst
@@ -0,0 +1,196 @@
+.. _cloudfront_tut:
+
+==========
+CloudFront
+==========
+
+This new boto module provides an interface to Amazon's Content Service,
+CloudFront.
+
+.. warning::
+
+ This module is not well tested. Paging of distributions is not yet
+ supported. CNAME support is completely untested. Use with caution.
+ Feedback and bug reports are greatly appreciated.
+
+Creating a CloudFront connection
+--------------------------------
+If you've placed your credentials in your ``$HOME/.boto`` config file then you
+can simply create a CloudFront connection using::
+
+ >>> import boto
+ >>> c = boto.connect_cloudfront()
+
+If you do not have this file you will need to specify your AWS access key and
+secret access key::
+
+ >>> import boto
+ >>> c = boto.connect_cloudfront('your-aws-access-key-id', 'your-aws-secret-access-key')
+
+Working with CloudFront Distributions
+-------------------------------------
+Create a new :class:`boto.cloudfront.distribution.Distribution`::
+
+ >>> distro = c.create_distribution(origin='mybucket.s3.amazonaws.com', enabled=False, comment='My new Distribution')
+ >>> d.domain_name
+ u'd2oxf3980lnb8l.cloudfront.net'
+ >>> d.id
+ u'ECH69MOIW7613'
+ >>> d.status
+ u'InProgress'
+ >>> d.config.comment
+ u'My new distribution'
+ >>> d.config.origin
+ <S3Origin: mybucket.s3.amazonaws.com>
+ >>> d.config.caller_reference
+ u'31b8d9cf-a623-4a28-b062-a91856fac6d0'
+ >>> d.config.enabled
+ False
+
+Note that a new caller reference is created automatically, using
+uuid.uuid4(). The :class:`boto.cloudfront.distribution.Distribution`,
+:class:`boto.cloudfront.distribution.DistributionConfig` and
+:class:`boto.cloudfront.distribution.DistributionSummary` objects are defined
+in the :mod:`boto.cloudfront.distribution` module.
+
+To get a listing of all current distributions::
+
+ >>> rs = c.get_all_distributions()
+ >>> rs
+ [<boto.cloudfront.distribution.DistributionSummary instance at 0xe8d4e0>,
+ <boto.cloudfront.distribution.DistributionSummary instance at 0xe8d788>]
+
+This returns a list of :class:`boto.cloudfront.distribution.DistributionSummary`
+objects. Note that paging is not yet supported! To get a
+:class:`boto.cloudfront.distribution.DistributionObject` from a
+:class:`boto.cloudfront.distribution.DistributionSummary` object::
+
+ >>> ds = rs[1]
+ >>> distro = ds.get_distribution()
+ >>> distro.domain_name
+ u'd2oxf3980lnb8l.cloudfront.net'
+
+To change a property of a distribution object::
+
+ >>> distro.comment
+ u'My new distribution'
+ >>> distro.update(comment='This is a much better comment')
+ >>> distro.comment
+ 'This is a much better comment'
+
+You can also enable/disable a distribution using the following
+convenience methods::
+
+ >>> distro.enable() # just calls distro.update(enabled=True)
+
+or::
+
+ >>> distro.disable() # just calls distro.update(enabled=False)
+
+The only attributes that can be updated for a Distribution are
+comment, enabled and cnames.
+
+To delete a :class:`boto.cloudfront.distribution.Distribution`::
+
+ >>> distro.delete()
+
+Invalidating CloudFront Distribution Paths
+------------------------------------------
+Invalidate a list of paths in a CloudFront distribution::
+
+ >>> paths = ['/path/to/file1.html', '/path/to/file2.html', ...]
+ >>> inval_req = c.create_invalidation_request(u'ECH69MOIW7613', paths)
+ >>> print inval_req
+ <InvalidationBatch: IFCT7K03VUETK>
+ >>> print inval_req.id
+ u'IFCT7K03VUETK'
+ >>> print inval_req.paths
+ [u'/path/to/file1.html', u'/path/to/file2.html', ..]
+
+.. warning::
+
+ Each CloudFront invalidation request can only specify up to 1000 paths. If
+ you need to invalidate more than 1000 paths you will need to split up the
+ paths into groups of 1000 or less and create multiple invalidation requests.
+
+This will return a :class:`boto.cloudfront.invalidation.InvalidationBatch`
+object representing the invalidation request. You can also fetch a single
+invalidaton request for a given distribution using
+``invalidation_request_status``::
+
+ >>> inval_req = c.invalidation_request_status(u'ECH69MOIW7613', u'IFCT7K03VUETK')
+ >>> print inval_req
+ <InvalidationBatch: IFCT7K03VUETK>
+
+The first parameter is the CloudFront distribution id the request belongs to
+and the second parameter is the invalidation request id.
+
+It's also possible to get *all* invalidations for a given CloudFront
+distribution::
+
+ >>> invals = c.get_invalidation_requests(u'ECH69MOIW7613')
+ >>> print invals
+ <boto.cloudfront.invalidation.InvalidationListResultSet instance at 0x15d28d0>
+
+This will return an instance of
+:class:`boto.cloudfront.invalidation.InvalidationListResultSet` which is an
+iterable object that contains a list of
+:class:`boto.cloudfront.invalidation.InvalidationSummary` objects that describe
+each invalidation request and its status::
+
+ >>> for inval in invals:
+ >>> print 'Object: %s, ID: %s, Status: %s' % (inval, inval.id, inval.status)
+ Object: <InvalidationSummary: ICXT2K02SUETK>, ID: ICXT2K02SUETK, Status: Completed
+ Object: <InvalidationSummary: ITV9SV0PDNY1Y>, ID: ITV9SV0PDNY1Y, Status: Completed
+ Object: <InvalidationSummary: I1X3F6N0PLGJN5>, ID: I1X3F6N0PLGJN5, Status: Completed
+ Object: <InvalidationSummary: I1F3G9N0ZLGKN2>, ID: I1F3G9N0ZLGKN2, Status: Completed
+ ...
+
+Simply iterating over the
+:class:`boto.cloudfront.invalidation.InvalidationListResultSet` object will
+automatically paginate the results on-the-fly as needed by repeatedly
+requesting more results from CloudFront until there are none left.
+
+If you wish to paginate the results manually you can do so by specifying the
+``max_items`` option when calling ``get_invalidation_requests``::
+
+ >>> invals = c.get_invalidation_requests(u'ECH69MOIW7613', max_items=2)
+ >>> print len(list(invals))
+ 2
+ >>> for inval in invals:
+ >>> print 'Object: %s, ID: %s, Status: %s' % (inval, inval.id, inval.status)
+ Object: <InvalidationSummary: ICXT2K02SUETK>, ID: ICXT2K02SUETK, Status: Completed
+ Object: <InvalidationSummary: ITV9SV0PDNY1Y>, ID: ITV9SV0PDNY1Y, Status: Completed
+
+In this case, iterating over the
+:class:`boto.cloudfront.invalidation.InvalidationListResultSet` object will
+*only* make a single request to CloudFront and *only* ``max_items``
+invalidation requests are returned by the iterator. To get the next "page" of
+results pass the ``next_marker`` attribute of the previous
+:class:`boto.cloudfront.invalidation.InvalidationListResultSet` object as the
+``marker`` option to the next call to ``get_invalidation_requests``::
+
+ >>> invals = c.get_invalidation_requests(u'ECH69MOIW7613', max_items=10, marker=invals.next_marker)
+ >>> print len(list(invals))
+ 2
+ >>> for inval in invals:
+ >>> print 'Object: %s, ID: %s, Status: %s' % (inval, inval.id, inval.status)
+ Object: <InvalidationSummary: I1X3F6N0PLGJN5>, ID: I1X3F6N0PLGJN5, Status: Completed
+ Object: <InvalidationSummary: I1F3G9N0ZLGKN2>, ID: I1F3G9N0ZLGKN2, Status: Completed
+
+You can get the :class:`boto.cloudfront.invalidation.InvalidationBatch` object
+representing the invalidation request pointed to by a
+:class:`boto.cloudfront.invalidation.InvalidationSummary` object using::
+
+ >>> inval_req = inval.get_invalidation_request()
+ >>> print inval_req
+ <InvalidationBatch: IFCT7K03VUETK>
+
+Simiarly you can get the parent
+:class:`boto.cloudfront.distribution.Distribution` object for the invalidation
+request from a :class:`boto.cloudfront.invalidation.InvalidationSummary` object
+using::
+
+ >>> dist = inval.get_distribution()
+ >>> print dist
+ <boto.cloudfront.distribution.Distribution instance at 0x304a7e8>

Powered by Google App Engine
This is Rietveld 408576698