2.13.0 (2023-10-31)
- Blob.from_string parse storage uri with regex (#1170) (0a243fa)
- Bucket.delete(force=True) now works with version-enabled buckets (#1172) (0de09d3)
- Fix typo in Bucket.clear_lifecycle_rules() (#1169) (eae9ebe)
2.12.0 (2023-10-12)
- Add additional_blob_attributes to upload_many_from_filenames (#1162) (c7229f2)
- Add crc32c_checksum argument to download_chunks_concurrently (#1138) (fc92ad1)
- Add skip_if_exists to download_many (#1161) (c5a983d)
- Launch transfer manager to GA (#1159) (5c90563)
- Bump python-auth version to fix issue and remove workaround (#1158) (28c02dd)
- Mark _deprecate_threads_param as a wrapper to unblock introspection and docs (#1122) (69bd4a9)
- Add snippets for upload_chunks_concurrently and add chunk_size (#1135) (3a0f551)
- Update formatting and wording in transfer_manager docstrings (#1163) (9e460d8)
2.11.0 (2023-09-19)
- Add gccl-gcs-cmd field to X-Goog-API-Client header for Transfer Manager calls (#1119) (14a1909)
- Add transfer_manager.upload_chunks_concurrently using the XML MPU API (#1115) (56aeb87)
- Support configurable retries in upload_chunks_concurrently (#1120) (1271686)
2.10.0 (2023-06-14)
- Add matchGlob parameter to list_blobs (#1055) (d02098e)
- Allow exceptions to be included in batch responses (#1043) (94a35ba)
2.9.0 (2023-05-04)
- Avoid pickling processed credentials (#1016) (7935824)
- Improve test error message for missing credentials (#1024) (892481a)
- Add sample and sample test for transfer manager (#1027) (4698799)
- Remove threads in transfer manager samples (#1029) (30c5146)
2.8.0 (2023-03-29)
- Add trove classifier for python 3.11 (#971) (7886376)
- Remove use of deprecated cgi module (#1006) (3071832)
- Add clarifications to read timeout (#873) (8fb26f4)
- Fix c.g.c structure (#982) (d5a2931)
- Update c.g.c docs and guides (#994) (62b4a50)
2.7.0 (2022-12-07)
- Add "transfer_manager" module for concurrent uploads and downloads, as a preview feature (#943) (9998a5e)
- Add use_auth_w_custom_endpoint support (#941) (5291c08)
2.6.0 (2022-11-07)
- Add Autoclass support and samples (#791) (9ccdc5f), closes #797
- Add predefined_acl to create_resumable_upload_session (#878) (2b3e8f9)
- Enable delete_blobs() to preserve generation (#840) (8fd4c37), closes #814
- Make tests run against environments other than prod (#883) (7dfeb62)
- Align bucket bound hostname url builder consistency (#875) (8a24add)
- BlobWriter.close() will do nothing if already closed (#887) (7707220)
- Remove client side validations (#868) (928ebbc)
- Update comments in list_blobs sample (#866) (9469f5d)
- Clarify prefixes entity in list_blobs usage (#837) (7101f47)
- Streamline docs for migration (#876) (7c8a178)
- Update docstring for lifecycle_rules to match generator behavior (#841) (36fb81b)
2.5.0 (2022-07-24)
2.4.0 (2022-06-07)
- add AbortIncompleteMultipartUpload lifecycle rule (#765) (b2e5150)
- support OLM Prefix/Suffix (#773) (187cf50)
- fix changelog header to consistent size (#802) (4dd0907)
- samples: Update the Recovery Point Objective (RPO) sample output (#725) (b0bf411)
- Update generation_metageneration.rst with a missing space (#798) (1e7cdb6)
- update retry docs (#808) (c365d5b)
2.3.0 (2022-04-12)
- add dual region bucket support and sample (#748) (752e8ab)
- track invocation id for retry metrics (#741) (bd56931)
2.2.1 (2022-03-15)
2.2.0 (2022-03-14)
- add user agent in python-storage when calling resumable media (c7bf615)
- deps: require google-api-core>=1.31.5, >=2.3.2 (#722) (e9aab38)
- Fix BlobReader handling of interleaved reads and seeks (#721) (5d1cfd2)
- retry client side requests timeout (#727) (e0b3b35)
2.1.0 (2022-01-19)
- add turbo replication support and samples (#622) (4dafc81)
- avoid authentication with storage emulator (#679) (8789afa)
- remove python 3.6 support (#689) (8aa4130)
2.0.0 (2022-01-12)
- Remove Python 2 support (#657)
1.44.0 (2022-01-05)
- Describe code sample more specifically (#660) (0459cb4)
- refresh readme instructions (#667) (ceb9314)
- This is just a simple PR to better describe what the code is doing in the comments. (0459cb4)
- use writeable streamin example for 'download_blob_to_file' (#676) (96092d4)
1.43.0 (2021-11-15)
- add ignore_flush parameter to BlobWriter (#644) (af9c9dc)
- add support for Python 3.10 (#615) (f81a2d0)
- add contributing and authoring guides under samples/ (#633) (420591a)
- add links to samples and how to guides (#641) (49f78b0)
- add README to samples subdirectory (#639) (58af882)
- update samples readme with cli args (#651) (75dda81)
1.42.3 (2021-09-30)
- changeover unspecified to inherited (#603) (283a419)
- check response code in batch.finish (#609) (318a286)
- skip tests that use unspecified pap until we get the change in (#600) (38b9b55)
1.42.2 (2021-09-16)
- add preconditions and retry config support to ACL patch operationss (#586) (4333caf)
- add unpinned protobuf for python3 (#592) (53f7ad0)
- pin six as a required dependency (#589) (9ca97bf)
1.42.1 (2021-09-07)
1.42.0 (2021-08-05)
- deps: add explicit ranges for 'google-api-core' and 'google-auth' (#530) (310f207)
- downloading no longer marks metadata fields as 'changed' (#523) (160d1ec)
- make 'requests.exceptions.ChunkedEncodingError retryable by default (#526) (4abb403)
1.41.1 (2021-07-20)
- deps: pin
{api,cloud}-core
,auth
to allow 2.x versions on Python 3 (#512) (4d7500e) - remove trailing commas from error message constants (#505) (d4a86ce), closes #501
1.41.0 (2021-07-13)
- deps: update minimum dependency versions to pick up bugfixes (#496) (92251a5), closes #494
- populate etag / generation / metageneration properties during download (#488) (49ba14c)
- revise and rename is_etag_in_json(data) (#483) (0a52546)
1.40.0 (2021-06-30)
- add preconditions and retry configuration to blob.create_resumable_upload_session (#484) (0ae35ee)
- add public access prevention to bucket IAM configuration (#304) (e3e57a9)
1.39.0 (2021-06-21)
- media operation retries can be configured using the same interface as with non-media operation (#447) (0dbbb8a)
- add ConnectionError to default retry (#445) (8344253)
- apply idempotency policies for ACLs (#458) (2232f38)
- replace python lifecycle action parsing ValueError with warning (#437) (2532d50)
- revise blob.compose query parameters
if_generation_match
(#454) (70d19e7)
- streamline 'timeout' / 'retry' docs in docstrings (#461) (78b2eba)
- streamline docstrings for conditional parmas (#464) (6999370)
1.38.0 (2021-04-26)
1.37.1 (2021-04-02)
- Ensure consistency check in test runs even if expected error occurs (#402) (416bcd4)
- silence expected errors for routine operations on BlobReader (#400) (d52853b)
1.37.0 (2021-03-24)
1.36.2 (2021-03-09)
1.36.1 (2021-02-19)
- allow metadata keys to be cleared (#383) (79d27da), closes #381
- allow signed url version v4 without signed credentials (#356) (3e69bf9)
- correctly encode bytes for V2 signature (#382) (f44212b)
1.36.0 (2021-02-10)
- correctly decode times without microseconds (#375) (37a1eb5), closes #363
- expose num_retries parameter for blob upload methods (#353) (fdabd6a), closes #352
- pass the unused parameter (#349) (5c60d24)
- set custom_time on uploads (#374) (f048be1), closes #372
1.35.1 (2021-01-28)
- address incorrect usage of request preconditions (#366) (321658c)
- Amend default retry behavior for bucket operations on client (#358) (b91e57d)
1.35.0 (2020-12-14)
1.34.0 (2020-12-11)
- avoid triggering global logging config (#333) (602108a), closes #332
- fall back to 'charset' of 'content_type' in 'download_as_text' (#326) (63ff233), closes #319
- fix conditional retry handling of camelCase query params (#340) (4ff6141)
- retry uploads only conditionally (#316) (547740c)
- update 'custom_time' setter to record change (#323) (5174154), closes #322
1.33.0 (2020-11-16)
- add classifiers for python3.9 and remove for python3.5 (#295) (f072825)
- add testing support for Python 3.9, drop Python 3.5 (#313) (fa14009)
- use passed-in
client
withinBlob.from_string
and helpers (#290) (d457ce3), closes #286 - preserve
metadata
value when uploading new file content (#298) (5ab6b0d), closes #293
1.32.0 (2020-10-16)
- field policy return string (#282) (c356b84)
- self-upload files for Unicode system test (#296) (6f865d9)
- use version.py for versioning, avoid issues with discovering version via get_distribution (#288) (fcd1c4f)
1.31.2 (2020-09-23)
1.31.1 (2020-09-16)
- add requests as a dependency (#271) (ec52b38)
- preserve existing blob hashes when 'X-Goog-Hash header' is not present (#267) (277afb8)
- blob: base64 includes additional characters (#258) (cf0774a)
1.31.0 (2020-08-26)
- add configurable checksumming for blob uploads and downloads (#246) (23b7d1c)
- add support for 'Blob.custom_time' and lifecycle rules (#199) (180873d)
- error message return from api (#235) (a8de586)
- storage: add support of daysSinceNoncurrentTime and noncurrentTimeBefore (#162) (136c097)
- pass 'client_options' to base class ctor (#225) (e1f91fc), closes #210
- rename 'Blob.download_as_{string,bytes}', add 'Blob.download_as_text' (#182) (73107c3)
- change datetime.now to utcnow (#251) (3465d08), closes #228
- extract hashes correctly during download (#238) (23cfb65)
- repair mal-formed docstring (#255) (e722376)
1.30.0 (2020-07-24)
- add timeouts to Blob methods where missing (#185) (6eeb855)
- auto-populate standard headers for non-chunked downloads (#204) (d8432cd), closes #24
- migrate to Service Account Credentials API (#189) (e4990d0)
- fix indent in code blocks (#171) (62d1543), closes #170
- remove doubled word in docstring (#209) (7a4e7a5)
- fix indent in code blocks (#171) (62d1543), closes #170
- remove doubled word in docstring (#209) (7a4e7a5)
1.29.0 (2020-06-09)
- add generationmatch args into Blob.compose() (#122) (dc01c59)
- add Bucket.reload() and Bucket.update() wrappers to restrict generation match args (#153) (76dd9ac), closes #127
- add helper for bucket bound hostname URLs (#137) (b26f9fa), closes #121
- add ifgenerationmatch support for Bucket.rename_blob() (#141) (f52efc8)
- add ifgenerationMatch support, pt1 (#123) (0944442)
- add offset and includeTrailingPrefix options to list_blobs (#125) (d84c0dd)
- Create CODEOWNERS (#135) (32a8d55)
- add documentaion of list_blobs with user project (#147) (792b21f)
- add projection parameter to blob.reload method (#146) (ddad20b)
- add unused variables to method generation match (#152) (f6574bb)
- change the method names in snippets file (#161) (e516ed9)
- fix upload object with bucket cmek enabled (#158) (5f27ffa)
- set default POST policy scheme to "http" (#172) (90c020d)
1.28.1 (2020-04-28)
- anonymous credentials for private bucket (#107) (6152ab4)
- add bucket name into POST policy conditions (#118) (311ecab)
1.28.0 (2020-04-22)
- fix incorrect mtime by UTC offset (#42) (76bd652)
- remove expiration strict conversion (#106) (9550dad), closes #105
1.27.0 (2020-04-01)
- generate signed URLs for blobs/buckets using virtual hostname (#58) (23df542)
- Add cname support for V4 signature (#72) (cc853af)
- add conformance tests for virtual hosted style signed URLs (#83) (5adc8b0)
- add get notification method (#77) (f602252)
- improve v4 signature query parameters encoding (#48) (8df0b55)
- fix blob metadata to None regression (#60) (a834d1b)
- add classifer for Python 3.8 (#63) (1b9b6bc)
- make v4 signing formatting consistent w/ spec (#56) (8712da8)
- use correct IAM object admin role (#71) (2e27edd)
- remove docstring of retrun in reload method (#78) (4abeb1c)
- use OrderedDict while encoding POST policy (#95) (df560e1)
1.26.0 (2020-02-12)
- add support for signing URLs using token (#9889) (ad280bf)
- add timeout parameter to public methods (#44) (63abf07)
- fix documentation of max_result parameter in list_blob (#43) (ff15f19)
- fix system test and change scope for iam access token (#47) (bc5375f)
- remove low version error assertion from iam conditions system tests (#53) (8904aee)
01-16-2020 11:00 PST
- fix: replace unsafe six.PY3 with PY2 for better future compatibility with Python 4 (#10081)
- fix(storage): fix document of delete blob (#10015)
- feat(storage): support optionsRequestedPolicyVersion (#9989)
- chore(storage): bump core dependency to 1.2.0 (#10160)
01-02-2020 13:20 PST
- Add 'ARCHIVE' storage class (#9533)
01-02-2020 10:39 PST
-str() metadata for for blob (#9796)
- Add timeout parameter to Batch interface to match google-cloud-core (#10010)
11-12-2019 12:57 PST
- Move
create_bucket
implementation fromBucket
toClient
. (#8604)
- Add opt-in raw download support. (#9572)
- Pin
google-resumable-media >= 0.5.0, < 0.6dev
. (#9572)
- Add python 2 sunset banner to documentation. (#9036)
- Fix query-string order dependent assert. (#9728)
- Normalize VPCSC configuration in system tests. (#9616)
11-05-2019 10:22 PST
- Add UBLA attrs to IAMConfiguration. (#9475)
10-28-2019 21:52 PDT
- Add gcloud-python header to user agent (#9551)
- Don't report a gapic version for storage (#9549)
- Update storage endpoint from www.googleapis.com to storage.googleapis.com (#9543)
- Call anonymous client method to remove dependency of google application credentials (#9455)
- Enable CSEK w/ V4 signed URLs (#9450)
- Support predefined ACLs in
Bucket.create
(#9334)
- Add
hmac_key
and notification documentation rst files (#9529) - Remove references to the old authentication credentials (#9456)
- Clarify docstring for
Blob.download_as_string
(#9332)
09-26-2019 06:45 PDT
- Add
user_project
param to HMAC-related methods. (#9237) - Add
Blob.from_string
andBucket.from_string
factories. (#9143)
- Fix intersphinx reference to
requests
. (#9294) - Fix deep / broken URL for service account setup. (#9164)
- Fix typo in
_helpers.py
. (#9239) - In systests, retry bucket creation on 503. (#9248)
- Avoid using
REGIONAL
/MULTI_REGIONAL
in examples, tests. (#9205) - Move
benchwrapper
intotests/perf
. (#9246) - Add support for
STORAGE_EMULATOR_HOST
; addbenchwrapper
script. (#9219)
08-28-2019 09:45 PDT
- Expose 'HMACKeyMetadata.id' field. (#9115)
- Make 'Blob.bucket' a readonly property. (#9113)
- Clarify 'response_type' for signed_url methods. (#8942)
- Add
client_options
to constructors for manual clients. (#9054)
- Remove compatability badges from READMEs. (#9035)
- Remove CI for gh-pages, use googleapis.dev for api_core refs. (#9085)
- Fix tests broken by yesterday's google-resumable-media release. (#9119)
- Harden 'test_access_to_public_bucket' systest against 429 / 503 errors. (#8997)
08-07-2019 00:37 PDT
- Add HMAC key support. (#8430)
- Mark old storage classes as legacy, not deprecated. (#8887)
- Normalize 'lint' / 'blacken' support under nox. (#8831)
- Update intersphinx mapping for requests. (#8805)
07-24-2019 12:37 PDT
- Retry bucket creation in signing setup. (#8620)
- Fix URI -> blob name conversion in
Client download_blob_to_file
. (#8440) - Avoid escaping tilde in blob public / signed URLs. (#8434)
- Add generation to 'Blob.repr'. (#8423)
- Link to googleapis.dev documentation in READMEs. (#8705)
- Add compatibility check badges to READMEs. (#8288)
- Fix example in
Client.download_blob_to_file
docstring. (#8629) - Remove typing information for kwargs to not conflict with type checkers (#8546)
- Skip failing
test_bpo_set_unset_preserves_acls
systest. (#8617) - Add nox session 'docs'. (#8478)
- Add docs job to publish to googleapis.dev. (#8464)
06-04-2019 11:09 PDT
- Don't pin
google-api-core
in libs usinggoogle-cloud-core
. (#8213)
- Fix example in
download_blob_to_file
docstring. (#8201) - Tweak
fields
docstring further. (#8040) - Improve docs for
fields
argument toBucket.list_blobs
. (#8023) - Fix docs typo. (#8027)
- Retry harder in face of 409/429 during module teardown. (#8113)
- Add more retries for 429s during teardown operations. (#8112)
05-16-2019 12:55 PDT
- Update
Client.create_bucket
to take a Bucket object or string. (#7820) - Update
Client.get_bucket
to take aBucket
object or string. (#7856) - Add
Client.download_blob_to_file
method. (#7949) - Add
client_info
support to client / connection. (#7872)
04-17-2019 15:37 PDT
- Remove classifier for Python 3.4 for end-of-life. (#7535)
- Ensure that 'Blob.reload' passes encryption headers. (#7441)
- Update client library documentation URLs. (#7307)
- Fix failing system tests (#7714)
- Increase number of retries for 429 errors. (#7484)
- Un-flake KMS integration tests expecting empty bucket. (#7479)
02-06-2019 12:49 PST
- Add 'Bucket.iam_configuration' property, enabling Bucket-Policy-Only. (#7066)
- Improve docs for 'generate_signed_url'. (#7201)
12-17-2018 17:02 PST
- Update
Blob.update_storage_class
to support rewrite tokens. (#6527)
- Skip signing tests for insufficient credentials (#6917)
- Document Python 2 deprecation (#6910)
- Normalize docs for
page_size
/max_results
/page_token
. (#6842)
12-10-2018 13:31 PST
- Import
iam.policy
fromgoogle.api_core
. (#6741) - Accomodate new back-end restriction on retention period. (#6388)
- Avoid deleting a blob renamed to itself (#6365)
- Update dependency to google-cloud-core (#6835)
- Bump minimum
api_core
version for all GAPIC libs to 1.4.1. (#6391)
- Normalize use of support level badges (#6159)
- Blacken libraries (#6794)
- Add templates for flake8, coveragerc, noxfile, and black. (#6642)
- Harden teardown in system tests. (#6444)
- Harden
create_bucket
call in systests vs. 429 TooManyRequests. (#6401) - Skip public bucket test in VPC Service Controls (#6230)
- Fix lint failure. (#6219)
- Disable test running in VPC Service Controls restricted environment (#6215)
- Use new Nox (#6175)
- Add support for bucket retention policies (#5534)
- Allow
destination.content_type
to be None inBlob.compose
. (#6031)
- Ensure that
method
forBlob.generate_signed_url
is uppercase. (#6110)
- Clarify GCS URL signing limitations on GCE (#6104)
- Redirect renamed 'usage.html'/'client.html' -> 'index.html'. (#5996)
- Add support for Python 3.7, drop support for Python 3.4. (#5942)
- Add lifecycle rules helpers to bucket. (#5877)
- Add 'stacklevel=2' to deprecation warnings. (#5897)
- Preserve message / args from an
InvalidResponse
. (#5492) - Fix generating signed urls for blobs with non-ascii names. (#5625)
- Move bucket location specification to
Bucket.create
; deprecateBucket.location
setter (#5808)
- Add
Client.get_service_account_email
. (#5765)
- Clarify
None
values for resource-backed properties. (#5509) - Elaborate docs for
{Bucket,Blob}.make_{public,private}
; note how to enable anonymous accesss toBlob.public_url
. (#5767)
- Harden
create_bucket
systest against 429 responses. (#5535) - Add system test: signed URLs w/ non-ASCII blob name. (#5626)
- Harden
tearDownModule
against 429 TooManyRequests. (#5701) - Retry
notification.create()
on503 ServiceUnavailable
. (#5741) - Fix failing KMS system tests. (#5832, #5837, #5860)
- Add support for KMS keys (#5259)
- Add
{Blob,Bucket}make_private
method (#5336)
- Modify system tests to use prerelease versions of grpcio (#5304)
- Change GCS batch endpoint from
/batch
to/batch/storage/v1
(#5040)
- Allow uploading files larger than 2GB by using Resumable Media Requests (#5187)
- Add range downloads (#5081)
- Update docstring to reflect correct units (#5277)
- Replace link to 404 object IAM docs with a note on limited utility. (#5181)
- Update doc reference in GCS client documentation (#5084)
- Add see also for
Bucket.create
method call forClient.create_bucket()
documentation. (#5073) - Link out to requester pays docs. (#5065)
- Add testing support for Python 3.7; remove testing support for Python 3.4. (#5295)
- Fix bad trove classifier
- Remove unused var (flake8 warning) (#5280)
- Fix unit test moving batch to batch/storage/v1 (#5082)
- Implement predefined acl (#4757)
- Add support for resumable signed url generation (#4789)
- Do not quote embedded slashes for public / signed URLs (#4716)
- Update dependency range for api-core to include v1.0.0 releases (#4944)
- Missing word in docstring (#4763)
- Install local dependencies when running lint (#4936)
- Re-enable lint for tests, remove usage of pylint (#4921)
- Normalize all setup.py files (#4909)
- Enable anonymous access to blobs in public buckets (#4315)
- Make project optional / overridable for storage client (#4381)
- Relax regex used to test for valid project IDs (#4543)
- Add support for
source_generation
parameter toBucket.copy_blob
(#4546)
- Added link to "Python Development Environment Setup Guide" in project README (#4187, h/t to @michaelawyu)
- Upgrading to
google-cloud-core >= 0.28.0
and adding dependency ongoogle-api-core
(#4221, #4280) - Requiring
google-resumable-media >= 0.3.1
(#4244)