@@ -8,6 +8,8 @@ allows world-wide storage and retrieval of any amount of data at any time. You c
88Cloud Storage for a range of scenarios including serving website content, storing data
99for archival and disaster recovery, or distributing large data objects to users via direct download.
1010
11+ **NOTE **: `3.0 Major Version Notes `_ are available. Feedback welcome.
12+
1113A comprehensive list of changes in each version may be found in the `CHANGELOG `_.
1214
1315- `Product Documentation `_
@@ -37,75 +39,6 @@ Google APIs Client Libraries, in `Client Libraries Explained`_.
3739.. _Storage Control API : https://cloud.google.com/storage/docs/reference/rpc/google.storage.control.v2
3840.. _Client Libraries Explained : https://cloud.google.com/apis/docs/client-libraries-explained
3941
40- 3.0 Major Version Notes
41- -----------------------
42-
43- Feedback Welcome
44- ~~~~~~~~~~~~~~~~
45-
46- If you experience that backwards compatibility for your application is broken
47- with this major version release, please let us know through the Github issues
48- system. While some breaks of backwards compatibility may be unavoidable due to
49- new features in the major version release, we will do our best to minimize
50- them. Thank you.
51-
52- Exception Handling
53- ~~~~~~~~~~~~~~~~~~
54-
55- In Python Storage 3.0, the dependency ``google-resumable-media `` was integrated.
56- The ``google-resumable-media `` dependency included exceptions
57- ``google.resumable_media.common.InvalidResponse `` and
58- ``google.resumable_media.common.DataCorruption ``, which were often imported
59- directly in user application code. The replacements for these exceptions are
60- ``google.cloud.storage.exceptions.InvalidResponse `` and
61- ``google.cloud.storage.exceptions.DataCorruption ``. Please update application code
62- to import and use these exceptions instead.
63-
64- For backwards compatibility, if ``google-resumable-media `` is installed, the new
65- exceptions will be defined as subclasses of the old exceptions, so applications
66- should continue to work without modification. This backwards compatibility
67- feature may be removed in a future major version update.
68-
69- Some users may be using the original exception classes from the
70- ``google-resumable-media `` library without explicitly installing that library. So
71- as not to break user applications following this pattern,
72- ``google-resumable-media `` is still in the list of dependencies in this package's
73- setup.py file. Applications which do not import directly from
74- ``google-resumable-media `` can safely disregard this dependency.
75- This backwards compatibility feature **will be removed ** in a future major
76- version update. Please migrate to using the ``google.cloud.storage.exceptions ``
77- classes as above.
78-
79- Checksum Defaults
80- ~~~~~~~~~~~~~~~~~
81-
82- In Python Storage 3.0, uploads and downloads now have a default of "auto" where
83- applicable. "Auto" will use crc32c checksums, except for unusual cases where the
84- fast (C extension) crc32c implementation is not available, in which case it will
85- use md5 instead. Before Python Storage 3.0, the default was md5 for most
86- downloads and None for most uploads. Note that ranged downloads ("start" or
87- "end" set) still do not support any checksumming, and some features in
88- ``transfer_manager.py `` still support crc32c only.
89-
90- Note: The method ``Blob.upload_from_file() `` requires a file in bytes mode, but
91- when checksum is set to None, as was the previous default, would not throw an
92- error if passed a file in string mode under some circumstances. With the new
93- defaults, it will now raise a TypeError. Please use a file opened in bytes
94- reading mode as required.
95-
96- Miscellaneous
97- ~~~~~~~~~~~~~
98-
99- - The ``BlobWriter `` class now attempts to terminate an ongoing resumable upload if
100- the writer exits with an exception.
101- - Retry behavior is now identical between media operations (uploads and
102- downloads) and other operations, and custom predicates are now supported for
103- media operations as well.
104- - ``Blob.download_as_filename() `` will now delete the empty file if it results in a
105- google.cloud.exceptions.NotFound exception (HTTP 404).
106- - Previously, object upload, metadata update, and delete methods had retries
107- disabled by default unless the generation or metageneration was specified in
108- the request. This has now changed so that retries are enabled by default.
10942
11043Quick Start
11144-----------
@@ -186,6 +119,26 @@ Windows
186119 pip install google-cloud-storage
187120
188121
122+ Example Usage
123+ ~~~~~~~~~~~~~
124+
125+ .. code-block :: python
126+
127+ # Imports the Google Cloud client library
128+ from google.cloud import storage
129+
130+ # Instantiates a client
131+ storage_client = storage.Client()
132+
133+ # The name for the new bucket
134+ bucket_name = " my-new-bucket"
135+
136+ # Creates the new bucket
137+ bucket = storage_client.create_bucket(bucket_name)
138+
139+ print (f " Bucket { bucket.name} created. " )
140+
141+
189142 Tracing With OpenTelemetry
190143~~~~~~~~~~~~~~~~~~~~~~~~~~
191144
@@ -240,6 +193,77 @@ For a list of libraries that can be instrumented, refer to the `OpenTelemetry Re
240193.. _Google Cloud Trace : https://cloud.google.com/trace
241194
242195
196+ 3.0 Major Version Notes
197+ -----------------------
198+
199+ Feedback Welcome
200+ ~~~~~~~~~~~~~~~~
201+
202+ If you experience that backwards compatibility for your application is broken
203+ with this major version release, please let us know through the Github issues
204+ system. While some breaks of backwards compatibility may be unavoidable due to
205+ new features in the major version release, we will do our best to minimize
206+ them. Thank you.
207+
208+ Exception Handling
209+ ~~~~~~~~~~~~~~~~~~
210+
211+ In Python Storage 3.0, the dependency ``google-resumable-media `` was integrated.
212+ The ``google-resumable-media `` dependency included exceptions
213+ ``google.resumable_media.common.InvalidResponse `` and
214+ ``google.resumable_media.common.DataCorruption ``, which were often imported
215+ directly in user application code. The replacements for these exceptions are
216+ ``google.cloud.storage.exceptions.InvalidResponse `` and
217+ ``google.cloud.storage.exceptions.DataCorruption ``. Please update application code
218+ to import and use these exceptions instead.
219+
220+ For backwards compatibility, if ``google-resumable-media `` is installed, the new
221+ exceptions will be defined as subclasses of the old exceptions, so applications
222+ should continue to work without modification. This backwards compatibility
223+ feature may be removed in a future major version update.
224+
225+ Some users may be using the original exception classes from the
226+ ``google-resumable-media `` library without explicitly installing that library. So
227+ as not to break user applications following this pattern,
228+ ``google-resumable-media `` is still in the list of dependencies in this package's
229+ setup.py file. Applications which do not import directly from
230+ ``google-resumable-media `` can safely disregard this dependency.
231+ This backwards compatibility feature **will be removed ** in a future major
232+ version update. Please migrate to using the ``google.cloud.storage.exceptions ``
233+ classes as above.
234+
235+ Checksum Defaults
236+ ~~~~~~~~~~~~~~~~~
237+
238+ In Python Storage 3.0, uploads and downloads now have a default of "auto" where
239+ applicable. "Auto" will use crc32c checksums, except for unusual cases where the
240+ fast (C extension) crc32c implementation is not available, in which case it will
241+ use md5 instead. Before Python Storage 3.0, the default was md5 for most
242+ downloads and None for most uploads. Note that ranged downloads ("start" or
243+ "end" set) still do not support any checksumming, and some features in
244+ ``transfer_manager.py `` still support crc32c only.
245+
246+ Note: The method ``Blob.upload_from_file() `` requires a file in bytes mode, but
247+ when checksum is set to None, as was the previous default, would not throw an
248+ error if passed a file in string mode under some circumstances. With the new
249+ defaults, it will now raise a TypeError. Please use a file opened in bytes
250+ reading mode as required.
251+
252+ Miscellaneous
253+ ~~~~~~~~~~~~~
254+
255+ - The ``BlobWriter `` class now attempts to terminate an ongoing resumable upload if
256+ the writer exits with an exception.
257+ - Retry behavior is now identical between media operations (uploads and
258+ downloads) and other operations, and custom predicates are now supported for
259+ media operations as well.
260+ - ``Blob.download_as_filename() `` will now delete the empty file if it results in a
261+ google.cloud.exceptions.NotFound exception (HTTP 404).
262+ - Previously, object upload, metadata update, and delete methods had retries
263+ disabled by default unless the generation or metageneration was specified in
264+ the request. This has now changed so that retries are enabled by default.
265+
266+
243267Next Steps
244268~~~~~~~~~~
245269
0 commit comments