Changelog

2.44.1 (2024-10-25)

Dependencies

2.44.0 (2024-10-23)

Features

Bug Fixes

  • deps: Update the Java code generator (gapic-generator-java) to 2.47.0 (c517798)
  • Fix createFrom resumable upload retry offset calculation (#2771) (1126cdc), closes #2770
  • Update gRPC ReadObject retry to avoid double retry (#2765) (1fc57b9)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20241008-2.0.0 (#2776) (0545b5e)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.38.0 (#2787) (a470e88)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.48.0 (#2781) (8fa013e)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.49.0 (#2782) (a7baffb)
  • Update googleapis/sdk-platform-java action to v2.48.0 (#2786) (2893e61)

2.43.2 (2024-10-08)

Bug Fixes

  • Plumb list blobs match glob option for grpc transport (#2759) (207abd1)

Dependencies

  • Update dependency com.google.api:gapic-generator-java to v2.47.0 (#2750) (9041f24)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240924-2.0.0 (#2719) (7b19831)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.37.0 (#2751) (003d6fa)
  • Update googleapis/sdk-platform-java action to v2.47.0 (#2749) (befa415)

2.43.1 (2024-09-26)

Bug Fixes

  • Add managed folder to testIamPermissions method (556dd95)
  • deps: Update the Java code generator (gapic-generator-java) to 2.46.0 (556dd95)
  • Remove server unimplemented GrpcStorageImpl#{get,list,create,delete,Update}HmacKey (#2717) (06f7292)
  • Remove server unimplemented GrpcStorageImpl#{get,list,create,delete}Notification (#2710) (310c9b2)
  • Remove server unimplemented GrpcStorageImpl#getServiceAccount (#2718) (51076a8)
  • Update grpc based ReadObject rpcs to remove race condition between cancellation and message handling (#2708) (2c7f088)
  • Update grpc upload error diagnostics to be tolerant of receiving an error if no request has been sent (#2732) (fff72d5)
  • Update GrpcStorageOptions to attempt direct path by default (#2715) (9de9a92)

Dependencies

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.36.0 (#2721) (11f09fe)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.36.1 (#2738) (eb320e1)
  • Update googleapis/sdk-platform-java action to v2.46.1 (#2736) (795f2c3)

2.43.0 (2024-09-13)

Features

  • Allow specifying an expected object size for resumable operations. (#2661) (3405611), closes #2511

Bug Fixes

  • Close pending zero-copy responses when Storage#close is called (#2696) (1855308)
  • Github workflow vulnerable to script injection (#2663) (9151ac2)
  • Make ParallelCompositeUploadBlobWriteSessionConfig.ExecutorSupplier#cachedPool a singleton (#2691) (1494809)

Dependencies

  • Promote storage-v2 artifacts to beta (9d22597)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240819-2.0.0 (#2665) (3df1000)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.35.0 (#2698) (1dd51c3)

2.42.0 (2024-08-19)

Features

  • Enable grpc.lb.locality label for client-side metrics (#2659) (b681ee0)

Bug Fixes

  • Update modified field handling for blob and bucket with json transport to properly clear fields (#2664) (e2f5537), closes #2662

Dependencies

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.34.0 (#2673) (453c29a)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.45.0 (#2667) (1f66dff)

2.41.0 (2024-07-31)

Features

  • Enable gRPC client open telemetry metrics reporting (#2590) (d153228)

Bug Fixes

  • Add UnknownHostException to set of retriable exception (#2651) (18de9fc)
  • Update grpc resumable upload error categorization to be more tolerant (#2644) (95697dd)
  • Update Storage#readAllBytes to respect shouldReturnRawInputStream option (#2635) (dc883cc)
  • Update TransferManager downloads to reduce in memory buffering (#2630) (fc2fd75)
  • Use fast calculation for totalRemaining number of bytes from multiple ByteBuffers (#2633) (758b3dd)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240625-2.0.0 (#2616) (b22babb)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240706-2.0.0 (#2634) (1ccaa0c)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.33.0 (#2647) (8196259)
  • Update dependency net.jqwik:jqwik to v1.9.0 (#2608) (a20eb66)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.3 (#2604) (8c79f39)
  • Update junit-platform.version to v5.10.3 (#2605) (a532ee4)

2.40.1 (2024-06-26)

Bug Fixes

  • Add a workaround to make sure grpc clients' hosts always match their universe domain (#2588) (87bf737)
  • Include x-goog-user-project on resumable upload puts for grpc transport (#2586) (6f2f504)
  • Update grpc bidi resumable uploads to validate ack'd object size (#2570) (5c9cecf)
  • Update grpc finalize on close resumable uploads to validate ack'd object size (#2572) (55a6d15)
  • Update grpc single-shot uploads to validate ack'd object size (#2567) (65c8808)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240524-2.0.0 (#2565) (d193243)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240621-2.0.0 (#2596) (73b8753)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.32.0 (#2597) (25940a4)

Documentation

  • Add Hierarchical Namespace Bucket and Folders samples (#2583) (3030081), closes #2569
  • Remove allowlist note from Folders RPCs (#2593) (82161de)
  • Update DeleteObject Sample to be clearer on object versioning behavior (#2595) (79b7cf0)

2.40.0 (2024-06-06)

Features

  • Promote google-cloud-storage-control to GA (#2575) (129f188)

Bug Fixes

  • Reduce Java 21 Virtual Thread Pinning in IO operations (#2553) (498fd0b)

Dependencies

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.31.0 (#2571) (67ce3d6)
  • Update dependency net.jqwik:jqwik to v1.8.5 (#2563) (88f7d86)

Documentation

2.39.0 (2024-05-22)

Features

  • Plumb PartNamingStrategy for Parallel Composite Uploads in Transfer Manager (#2547) (79d721d)

Bug Fixes

  • Update GapicUnbufferedChunkedResumableWritableByteChannel to be tolerant of non-quantum writes (#2537) (1701fde)

Dependencies

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.30.1 (#2550) (e9807ec)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.2 (#2552) (a207829)

2.38.0 (2024-05-09)

Features

  • Promoted google-cloud-storage-control to beta (#2531) (09f7191)

Bug Fixes

  • Add strict client side response validation for gRPC chunked resumable uploads (#2527) (c1d1f4a)
  • An existing resource pattern value projects/{project}/buckets/{bucket}/managedFolders/{managedFolder=**} to resource definition storage.googleapis.com/ManagedFolder is removed (#2524) (7d7f526)
  • deps: Update the Java code generator (gapic-generator-java) to 2.39.0 (#2501) (518d4be)
  • ParallelCompositeUpload in Transfer Manager hangs when encountering OOM (#2526) (67a7c6b)
  • Update grpc WriteObject response handling to provide context when a failure happens (#2532) (170a3f5)
  • Update GzipReadableByteChannel to be tolerant of one byte reads (#2512) (87b63f4)
  • Update StorageOptions to carry forward fields that aren't part of ServiceOptions (#2521) (b84654e)

Dependencies

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.30.0 (#2523) (3e573f7)
  • Update dependency info.picocli:picocli to v4.7.6 (#2535) (f26888a)

Documentation

  • Add in Transfer Manager chunked upload/download samples (#2518) (d1f6bcc)
  • Update readme to include gradle instructions for storage control (#2503) (50ac93b)
  • Update TransportCompatibility annotation for Storage#blobWriteSession (#2520) (b7d673c)

2.37.0 (2024-04-19)

Features

  • Adds a ZeroCopy response marshaller for grpc ReadObject handling (#2489) (8c7404d)
  • Port BufferToDiskThenUpload to work with HttpStorageOptions (#2473) (d84e255)
  • Port DefaultBlobWriteSessionConfig to work with HttpStorageOptions (#2472) (e5772a4)
  • Port ParallelCompositeUploadBlobWriteSessionConfig to work with HttpStorageOptions (#2474) (3bf6026)
  • Transfer Manager ParallelCompositeUploads (#2494) (8b54549)

Bug Fixes

  • Ensure all BlobWriteSession types conform to the semantics specified in BlobWriteSession (#2482) (d47afcf)
  • Fix BidiBlobWriteSessionConfigs to respect preconditions (#2481) (955d78a)
  • Update ApiaryUnbufferedWritableByteChannel to be graceful of non-quantum aligned write calls (#2493) (f548335)
  • Update BidiBlobWriteSessionConfig to respect a provided bufferSize (#2471) (e1fb857)
  • Update grpc handling of IAM Policy etag to account for base64 encoding (#2499) (032f2f2)
  • Update Grpc Retry Conformance after new additions to testbench (#2309) (09043c5)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240319-2.0.0 (#2460) (9c2ee90)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 (#2467) (c12f329)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.29.0 (#2502) (7ed8446)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.43.0 (#2459) (2dc4748)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.44.0 (#2497) (9b0253c)

Documentation

  • Add summary and reference docs for Storage Control API to readme (#2485) (70fd088)
  • Create Samples for transfer manager (#2492) (e2030b2)

2.36.1 (2024-03-20)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240311-2.0.0 (#2446) (27b4780)
  • Update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 (#2450) (bf35a9a)

2.36.0 (2024-03-15)

Features

  • Add Custom Part Metadata Decorator to ParallelCompositeUploadConfig (#2434) (43b8006)
  • Add hierarchical namespace and folders features (#2445) (8074fff)
  • Add soft delete feature (#2403) (989f36f)

Bug Fixes

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240307-2.0.0 (#2442) (1352203)
  • Update dependency net.jqwik:jqwik to v1.8.4 (#2447) (110b80c)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.42.0 (#2441) (80745d4)

2.35.0 (2024-03-04)

Features

  • Add Bidi write feature (#2343) (47fde85)
  • Add soft_delete_time and hard_delete_time object metadata fields (#2415) (0b67e2d)

Dependencies

  • Update dependency com.google.cloud:sdk-platform-java-config to v3.27.0 (#2432) (334119c)
  • Update dependency net.jqwik:jqwik to v1.8.3 (#2425) (17f366c)
  • Update dependency net.jqwik:jqwik to v1.8.3 (#2428) (ba485b3)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 (#2421) (fff0295)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 (#2427) (d031c46)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.41.0 (#2419) (4b05639)

Documentation

2.34.0 (2024-02-14)

Features

  • Enable automatic retries for create RenameFolder LRO in Storage Control API (#2410) (b0450b8)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240205-2.0.0 (#2400) (70d8c8b)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240209-2.0.0 (#2407) (6a25dbb)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.25.0 (#2411) (cba3415)

2.33.0 (2024-02-07)

Features

Bug Fixes

  • Temporarily restoring storage_grpc_service_config.json to fix broken test (#2365) (50b6610)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240202-2.0.0 (#2393) (3391e1d)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.24.0 (#2389) (9e4e00d)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 (#2390) (59ac502)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 (#2394) (8dbd4bf)
  • Update junit-platform.version to v5.10.2 (#2395) (0c5aef3)

2.32.1 (2024-01-24)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 (#2378) (798aadf)

2.32.0 (2024-01-22)

Features

  • Add ability to create a PCU Prefix at the object level (#2345) (d39a4e4)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 (#2363) (e2e2d7e)

2.31.0 (2024-01-09)

Features

Bug Fixes

  • Add an exception to zero byte uploads on CreateFrom (#2342) (2b5b27e)
  • deps: Update the Java code generator (gapic-generator-java) to 2.31.0 (#2349) (578d5d0)

Dependencies

  • Update actions/setup-java action to v4 (#2321) (d7e5b20)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20231202-2.0.0 (#2327) (8983c39)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20240105-2.0.0 (#2351) (e9608c6)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.21.0 (#2348) (321adb6)

2.30.1 (2023-12-06)

Bug Fixes

2.30.0 (2023-12-01)

Features

Bug Fixes

  • Fix JSON read handling when socket broken resulting in partial bytes copied (#2303) (d4bfcf0), closes #2301
  • Fix Storage#readAllBytes to allow reading compressed bytes (#2304) (68b96a9)
  • Update implementation of readAllBytes and downloadTo to be more robust to retryable errors (#2305) (21821da)

Dependencies

  • Update actions/github-script action to v7 (#2300) (062df62)
  • Update actions/github-script action to v7 (#2302) (c46c24f)
  • Update actions/github-script action to v7 (#2318) (44c1b00)
  • Update actions/setup-java action to v4 (#2315) (5791470)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20231117-2.0.0 (#2320) (b5a34d8)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.20.0 (#2316) (49cdc20)
  • Update dependency net.jqwik:jqwik to v1.8.2 (#2312) (70d1d1c)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.1 (#2292) (7471a7c)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.40.0 (#2306) (29f4ea6)
  • Update junit-platform.version to v5.10.1 (#2293) (6e36cc4)

Documentation

  • Add @TransportCompatibility to StorageBatch (#2276) (d3b7bb3)

2.29.1 (2023-11-02)

Bug Fixes

  • Improve 503 handling for json resumable uploads (#2289) (9b4bb82)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20231028-2.0.0 (#2281) (94b8dd6)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.19.0 (#2288) (cc65fd0)

2.29.0 (2023-10-23)

Features

Bug Fixes

  • Remove PCU internals which should be hidden (#2263) (eff00fb)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20231012-2.0.0 (#2257) (e75d8bf)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.18.0 (#2265) (40bf665)
  • Update dependency net.jqwik:jqwik to v1.8.1 (#2267) (c518c75)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.28 (#2266) (b0b1b57)

2.28.0 (2023-10-10)

Features

  • Add @BetaApi BlobWriteSession#parallelCompositeUpload (#2239) (f8f4e22)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.17.0 (#2250) (df687f2)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.39.0 (#2249) (fe85df9)

Documentation

  • Reorder columns in table of BlobWriteSessionConfigs.java (#2242) (98e694f)

2.27.1 (2023-09-25)

Bug Fixes

  • Consider Storage#delete(BlobId) idempotent when id has generation (#2222) (453dd63)
  • Update RecoveryFileManager to allow distinct files for multiple invocations of equivalent info (#2207) (44e9dd5)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20230914-2.0.0 (#2213) (0af39d6)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20230922-2.0.0 (#2223) (844fe80)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.16.0 (#2219) (7401f21)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.16.1 (#2225) (f092c4e)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.27 (#2210) (3c77530)
  • Update gapic-generator-java to 2.26.0 (#2224) (a105736)

2.27.0 (2023-09-12)

Features

  • Add new JournalingBlobWriteSessionConfig usable with gRPC transport (#2194) (8880d94)
  • Follow-up CLI Improvements (#2184) (d985976)
  • Initial CLI for SSB integration and Workload 1 (#2166) (a349735)

Bug Fixes

  • A resumable session without a Range header should be interpreted as 0 length (#2182) (5302201)
  • Update User-Agent handling for resumable uploads (#2168) (665b714)
  • Update version resolution logic to be more resilient (#2169) (c89d275)

Dependencies

  • Update actions/checkout action to v4 (#2188) (c10267e)
  • Update actions/checkout action to v4 (#2189) (5c048c4)
  • Update actions/checkout action to v4 (#2190) (45e66e8)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20230710-2.0.0 (#2162) (73a9f75)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20230907-2.0.0 (#2200) (1fa49db)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.15.0 (#2197) (26552f4)
  • Update dependency info.picocli:picocli to v4.7.4 (#2177) (0c90814)
  • Update dependency info.picocli:picocli to v4.7.5 (#2183) (f244861)
  • Update dependency net.jqwik:jqwik to v1.8.0 (#2187) (aedbd6a)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.26 (#2196) (4f8bb65)

2.26.1 (2023-08-14)

Bug Fixes

  • Make use of ImmutableMap.Builder#buildOrThrow graceful (#2159) (e9746f8)
  • Update gRPC writeAndClose to only set finish_write on the last message (#2163) (95df758)

Dependencies

  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.24 (#2158) (4f5682a)

2.26.0 (2023-08-03)

Features

  • Implement BufferToDiskThenUpload BlobWriteSessionConfig (#2139) (4dad2d5)
  • Introduce new BlobWriteSession (#2123) (e0191b5)

Bug Fixes

  • grpc: Return error if credentials are detected to be null (#2142) (b61a976)
  • Possible NPE when HttpStorageOptions deserialized (#2153) (68ad8e7)
  • Update grpc default metadata projection to include acl same as json (#2150) (330e795)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.14.0 (#2151) (eba8b6a)

2.25.0 (2023-07-24)

Features

  • BlobWriteChannelV2 - same throughput less GC (#2110) (1b52a10)
  • Update Storage.createFrom(BlobInfo, Path) to have 150% higher throughput (#2059) (4c2f44e)

Bug Fixes

  • Update BlobWriteChannelV2 to properly carry forward offset after incremental flush (#2125) (c099a2f)
  • Update GrpcStorageImpl.createFrom(BlobInfo, Path) to use RewindableContent (#2112) (c805051)

Documentation

Dependencies

  • test: Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.37.0 (#2130) (9e8b6d3)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 (#2129) (a7e854e)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 (#2132) (f5477e4)
  • Update junit-platform.version to v5.10.0 (#2133) (3d22686)

2.24.0 (2023-07-11)

Features

  • Add validation around bytes received vs bytes expected (#2078) (45d142a)
  • Initial Preview of Transfer Manager #2105 (8b17574)

Bug Fixes

  • Update grpc upload logic to follow hashing behavior of json (#2107) (ed05232)
  • Update UploadCallable to use createFrom to avoid NPE trying to resolve resulting object (#2086) (6769a2b)

Documentation

  • Javadocs for remainder of Transfer Manager (#2097) (0362e80)
  • Javadocs for TransferManager interface and ParallelUploadConfig (#2094) (63d8ed3)
  • samples: Add storage_grpc_quickstart samples (#2041) (5f916fb)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.12.0 (#2088) (18adb5a)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.0 (#2106) (734dee0)
  • Update dependency io.grpc:grpc-bom to v1.56.1 (#2101) (3102941)
  • Update dependency net.jqwik:jqwik to v1.7.4 (#2103) (c681ccf)
  • Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.36.0 (#2080) (ba5c11a)

2.23.0 (2023-06-21)

Features

  • Add new dedup utility method to Option classes (#2063) (2ad196c)

Dependencies

  • Update dependencies io.grpc:* to v1.56.0 (#2072) (e10bde2)
  • Update dependency com.google.apis:google-api-services-storage to v1-rev20230617-2.0.0 (#2077) (9f618cd)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.23 (#2074) (427f330)

2.22.4 (2023-06-07)

Bug Fixes

  • Include invocation-id for resumable PUTs (#2047) (a590ae3)

Documentation

  • Add documentation about quantum write alignment, use of ObjectChecksums, Bucket.name format, and Object.delete_time (#2032) (c39ec13)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 (#2050) (88fffbd)

2.22.3 (2023-05-30)

Bug Fixes

  • Add retries for auth service errors which are tagged Retryable (#2026) (3675514)
  • Make GrpcBlobWriteChannel open upon construction (#2022) (6549736)
  • Plumb GrpcInterceptorProvider to constructed InstantiatingGrpcChannelProvider (#2031) (bfe0415)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.0 (#2033) (54d6332)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 (#2035) (0bdb5ec)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.22 (#2016) (b4c4655)

2.22.2 (2023-05-09)

Bug Fixes

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.9.0 (#2010) (27b9014)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.9.3 (#1996) (7839768)
  • Update junit-platform.version to v5.9.3 (#1997) (5683340)

2.22.1 (2023-04-26)

Bug Fixes

  • Introduce new BlobId#toGsUtilUriWithGeneration (#1998) (68de5c7)
  • Update grpc x-goog-user-project handling gracefulness (#1983) (f274739)

Documentation

  • Update routing annotations for CancelResumableWriteRequest and QueryWriteStatusRequest (#1992) (e36f8f1)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.8.0 (#1995) (b7fb037)

2.22.0 (2023-04-12)

Features

  • Add matchGlob parameter to BlobListOption (#1965) (93be97a)
  • Handle generation numbers in BlobId#{to,from}GsUtilUri (#1929) (0a033b3)
  • Implement GrpcStorageImpl#{get,list,create,delete}Notification (#1958) (830052b)
  • Make it possible to disable the buffer of ReadChannels returned from Storage.reader (#1974) (702ab2b)

Bug Fixes

  • Update GrpcStorageOptions to set allowNonDefaultServiceAccount = true (#1977) (f1b9493)

Documentation

  • Update spec for WriteObjectRequest.object_size to clarify that it applies to both one-shot and resumable writes (#1976) (7354e19)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.7.0 (#1978) (1f7e9c9)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.21 (#1979) (d6accdf)

2.21.0 (2023-03-31)

Features

  • Remove Bucket.retention_period, now that we've migrated to retention_duration (#1955) (c0ffe7c)

Bug Fixes

  • Update bucket creation to set project as bucket.project (#1912) (65993c0)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.6.0 (#1957) (af90f16)
  • Update dependency net.jqwik:jqwik to v1.7.3 (#1944) (a8b96c9)

Documentation

  • Revert ChecksummedData message definition not to specify ctype=CORD, (#1960) (3a2a643)
  • Updated ChecksummedData message definition to specify ctype=CORD, and removed incorrect earlier attempt that set that annotation in the ReadObjectResponse message definition (#1959) (3d97bdd)

2.20.2 (2023-03-22)

Bug Fixes

  • Add service_yaml_parameters to java_gapic_library targets (#1933) (ceaeb3f)

Documentation

  • Add clarification on non-editable metadata (#1939) (df57705)

Dependencies

  • Update dependency com.google.apis:google-api-services-storage to v1-rev20230301-2.0.0 (#1935) (dbc7534)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.5.0 (#1940) (fc55e41)

2.20.1 (2023-03-07)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.4.0 (#1919) (fb42336)

2.20.0 (2023-03-01)

Features

  • Allow specifying a negative offset to ReadChannel (#1916) (6df5469)

2.19.0 (2023-02-21)

Features

  • Update routing annotation for CreateBucketRequest (#1892) (581120f)

Bug Fixes

  • Update Default RetryStrategy to retry SSLException caused by SocketException (#1900) (be2aba0)
  • Update GrpcStorageImpl handling to be aware of quotaProjectId (#1877) (ca8510e), closes #1736

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.3.0 (#1907) (85e22d7)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.20 (#1904) (95b9aef)

2.18.0 (2023-02-06)

Features

  • Add Storage.BlobWriteOption.{meta,}generation{Not,}Match(long) methods to allow literal value construction (#1875) (a9fab09)
  • Setting up 2.15.x (#1880) (1c88e83)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 (#1886) (6928556)

2.17.2 (2023-01-23)

Bug Fixes

  • Update BlobReadChannelV2 handling to correctly restart for decompressed object (#1867) (93e8ed4)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.2 (#1865) (ceb9a61)

2.17.1 (2023-01-13)

Bug Fixes

  • Update BaseStorageReadChannel to be left open unless explicitly closed (#1853) (1425dd9)

2.17.0 (2023-01-12)

Features

  • Implement GrpcStorageImpl BucketAccessControl operations (#1816) (5c52079)
  • Implement GrpcStorageImpl ObjectAccessControl operations (#1818) (2eec791)
  • Implement GrpcStorageImpl#createDefaultAcl & GrpcStorageImpl#updateDefaultAcl (#1806) (0f24a11)
  • Implement GrpcStorageImpl#deleteDefaultAcl (#1807) (c783277)
  • Implement GrpcStorageImpl#getDefaultAcl (#1802) (b9b7c49)
  • Implement GrpcStorageImpl#listDefaultAcl (#1805) (03c2e66)
  • Improve throughput of http based storage#reader between 100 MiB/s and 200 MiB/s (#1799) (94cd288)
  • Update GrpcBlobReadChannel to allow seek/limit after read (#1834) (45dc983)

Bug Fixes

  • Add missing preconditions and update samples (#1753) (96beca2)
  • grpc: Fix bucket logging conversion to allow clearing (#1822) (30e19dc)
  • Update gRPC object list implementation to include synthetic directories (#1824) (0665c24)
  • Update Grpc Write implementation to allow specifying expected md5 (#1815) (4662572)
  • Update GrpcConversions to use Bucket.RetentionPolicy.retention_duration (#1798) (82fb014)
  • Update GrpcStorageImpl#update to support fine-grained update of BucketInfo.labels and BlobInfo.metadata (#1843) (c8bf3c7)

Documentation

  • Document differing behavior of {get,list}{,default}Acl between HTTP and gRPC (#1820) (9511b17)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.1 (#1836) (3b71fab)
  • Update dependency net.jqwik:jqwik to v1.7.2 (#1833) (83bc261)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.9.2 (#1837) (5b38184)
  • Update junit-platform.version to v5.9.2 (#1838) (372521b)

2.16.0 (2022-12-06)

Features

  • Add {Compose,Rewrite,StartResumableWrite}Request.object_checksums and Bucket.RetentionPolicy.retention_duration (#1790) (31c1b18)
  • Added a new retention_duration field of Duration type (31c1b18)
  • Added object_checksums for compose/rewrite/startResumableWrite request (31c1b18)

Bug Fixes

  • Removed WriteObject routing annotations (31c1b18)

Documentation

  • Clarified relative resource names in gRPC IAM RPCs (31c1b18)
  • Clarified the object can be deleted via DeleteObject (31c1b18)
  • Updated the document link for Naming Guidelines (31c1b18)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 (#1797) (b1d0266)
  • Update dependency org.apache.httpcomponents:httpclient to v4.5.14 (#1795) (cf900f4)
  • Update dependency org.apache.httpcomponents:httpcore to v4.4.16 (#1786) (3bf403e)
  • Update dependency org.apache.httpcomponents:httpmime to v4.5.14 (#1796) (c9ee3ca)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.18 (#1782) (5bc5176)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.19 (#1791) (3184d65)

2.15.1 (2022-11-17)

Bug Fixes

  • Disable REGAPIC transport in storage v2 (#1762) (13d630e)
  • Update GrpcStorageImpl#get(BlobId) to return null on 404 (#1772) (8c59c64)

Documentation

  • Annotate all Option factory methods with their Nullability bounds (#1775) (3b8d137)

2.15.0 (2022-11-07)

Features

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.6 (#1761) (803a90b)
  • Update dependency net.jqwik:jqwik to v1.7.1 (#1758) (140e909)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.17 (#1759) (7e3175a)

2.14.0 (2022-10-26)

Google Cloud Storage gRPC API Preview

The first release of google-cloud-storage with support for a subset of the Google Cloud Storage gRPC API which is in private preview. The most common operations have all been implemented and are available for experimentation.

Given not all public api surface of google-cloud-storage classes are supported for gRPC a new annotation @TransportCompatibility has been added to various classes, methods and fields/enum values to signal where that thing can be expected to work. As we implement more of the operations these annotations will be updated.

All new gRPC related APIs are annotated with @BetaApi to denote they are in preview and the possibility of breaking change is present. At this time, opting to use any of the gRPC transport mode means you are okay with the possibility of a breaking change happening. When the APIs are out of preview, we will remove the @BetaApi annotation to signal they are now considered stable and will not break outside a major version.

NOTICE: Using the gRPC transport is exclusive. Any operations which have not yet been implemented for gRPC will result in a runtime error. For those operations which are not yet implemented, please continue to use the existing HTTP transport.

Special thanks (in alphabetical order) to @BenWhitehead, @frankyn, @jesselovelace and @sydney-munro for their hard work on this effort.

Notable Improvements

  1. For all gRPC media related operations (upload/download) we are now more resource courteous then the corresponding HTTP counterpart. Buffers are fixed to their specified size (can't arbitrarily grow without bounds), are allocated lazily and only if necessary.

    1. Investigation into the possibility of backporting these improvements to the HTTP counterparts is ongoing
  2. Preview support for Accessing GCS via gRPC

    1. Set the environment variable GOOGLE_CLOUD_ENABLE_DIRECT_PATH_XDS=true, then run your program.
    2. When configuring your StorageOptions mimic the following: StorageOptions.grpc() .setAttemptDirectPath(true) .build()
    3. Internally the default host endpoint https://storage.googleapis.com:443 will be transformed to the applicable google-c2p-experimental:///storage.googleapis.com
  3. Support for java.time types on model classes

    1. Points in time are now represented with java.time.OffsetDateTime, while durations are represented with java.time.Duration
    2. All existing Long centric methods are still present, but have been deprecated in favor of their corresponding java.time variant
    3. At the next major version, these deprecated methods will be replaced with types from java.time and the java.time variant methods will be deprecated
  4. com.google.cloud.storage.Storage now extends java.lang.AutoClosable thereby allowing it to be used in a try-with-resource block.

    1. When using gRPC transport be sure to call Storage#close() when complete so it can clean up the gRPC middleware and resources.
    2. When using HTTP transport calling Storage#close() will gracefully no-op, allowing for the same style of use regardless of transport.
  5. When downloading an object via gRPC idle stream detection is now present which will restart a stream if it is determined to be idle and has remaining retry budget

  6. Update equals()/hashCode() methods to follow the expected contract
  7. The new gRPC transport based implementation continues to provide idempotency aware automatic retries the same as HTTP
  8. Expanded test suite which should bring improved stability and reliability to both HTTP and gRPC transport implementations
  9. New com.google.cloud:google-cloud-storage-bom maven bom available to use for coordinated dependency version resolution for multiple storage artifacts

Not yet implemented

  1. All ACL specific operations.

    1. These will be implemented in the near future
    2. In the interim, reading and setting of ACLs and Default Object ACLs can be performed via Object/Bucket operations
  2. All Notification related operations

    1. These will be implemented in the near future
    2. In the interim, please continue to use the HTTP transport
  3. ReadChannel#capture(), RestorableState<ReadChannel>#restore(), WriteChannel#capture(), RestorableState<WriteChannel>#restore(), CopyWriter#capture() and RestorableState<CopyWriter>#capture() are not yet implemented.

    • These use cases will be implemented in the near future. We are still determining the route we want to take.
  4. Batch and "bulk" operations which depend on batch

    1. GCS gRPC does not currently define a batch method whereas HTTP does. This means Storage#batch() is only supported for HTTP transport.
    2. The following methods which currently depend on Storage#batch() are currently only supported for HTTP transport
      • com.google.cloud.storage.Storage#get(com.google.cloud.storage.BlobId...)
      • com.google.cloud.storage.Storage#get(java.lang.Iterable<com.google.cloud.storage.BlobId>)
      • com.google.cloud.storage.Storage#update(com.google.cloud.storage.BlobInfo...)
      • com.google.cloud.storage.Storage#update(java.lang.Iterable<com.google.cloud.storage.BlobInfo>)
      • com.google.cloud.storage.Storage#delete(com.google.cloud.storage.BlobId...)
      • com.google.cloud.storage.Storage#delete(java.lang.Iterable<com.google.cloud.storage.BlobId>)

One-Time Inconveniences

  1. All classes under com.google.cloud.storage which are Serializable have new serialVersionUIDs and are incompatible with any previous version.

    1. Several classes had to change in order to support both HTTP and gRPC at the same time. We were able to preserve Source and Binary runtime level compatibility but had to break Serialization across versions.
    2. If you depend upon Java Serialization, please ensure you are using the same version of google-cloud-storage in both locations.
  2. The cause chains of some Exceptions have changed.

    1. When using gRPC, StorageException causes will use the corresponding com.google.api.gax.rpc.ApiException for the failure type instead of the HTTP com.google.api.client.googleapis.json.GoogleJsonError
      • In an effort to preserve compatibility of your existing error handling code, we will translate from the gRPC error code to the similar HTTP Status code before constructing the StorageException preserving the integrity of StorageException#getCode()
    2. RetryHelper$RetryHelperException will no longer appear in exception cause chains for either HTTP or gRPC

Not Supported

Given the nature of the gRPC transport a few things are explicitly not supported when using gRPC, and require HTTP transport. Attempting to use any of the following methods will result in a runtime error stating they are not supported for gRPC transport.

  1. Storage#writer(URL) does not work for gRPC. gRPC does not provide a means of exchanging an HTTP url for a resumable session id
  2. Storage#signUrl is not supported for gRPC transport. Signed URLs explicitly generate HTTP urls and are only supported for the HTTP transport based implementation.
  3. Storage#generateSignedPostPolicyV4 is not supported for gRPC transport. Signed URLs explicitly generate HTTP urls and are only supported for the HTTP transport based implementation.

Known Issues

  1. https://github.com/googleapis/java-storage/issues/1736
  2. https://github.com/googleapis/java-storage/issues/1737

Features

  • Initial preview implementation of Storage over gRPC (#1740) (95d7ad9)

Bug Fixes

  • Properly implement GrpcBlobReadChannel#isOpen (#1733) (04e5166)
  • Update BucketInfo.LifecycleRule.LifecycleCondition equals and hashCode to include match prefix and suffix (#1729) (9664e8a)

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 (#1725) (09bc225)

2.13.1 (2022-10-20)

Bug Fixes

  • Avoid unexpected initialization of JacksonParser in Graal 22.2 (#1709) (eca1a03)
  • Update BucketInfo.LifecycleRule#fromPb to wire through MatchesPrefix & MatchesSuffix (#1717) (eae3cf2)

Dependencies

  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.15 (#1711) (f188a07)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.16 (#1721) (631b98d)

2.13.0 (2022-10-03)

Features

  • Regenerate gapic storage v2 client as of googleapis/googleapis@844d0f7 (#1673) (bd818b3)

Documentation

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 (#1685) (3d8f550)
  • Update dependency gcp-releasetool to v1.8.9 (#1684) (54a5159)
  • Update dependency importlib-metadata to v4.13.0 (#1682) (2487aff)
  • Update dependency importlib-metadata to v5 (#1683) (020fe8c)
  • Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.14 (#1643) (ab3a198)
  • Update dependency org.junit.vintage:junit-vintage-engine to v5.9.1 (#1635) (ba85ab6)

2.12.0 (2022-09-15)

Features

  • Add toString method for CustomPlacementConfig (#1602) (51aca10)

Documentation

Dependencies

  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 (#1611) (8a48aea)
  • Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 (#1620) (20e6378)

2.11.3 (2022-08-08)

Dependencies

  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.11 (#1551) (0fc2d33)

2.11.2 (2022-08-04)

Dependencies

  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.10 (#1543) (8ff1dff)

2.11.1 (2022-08-04)

Dependencies

  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.9 (#1537) (ae17737)

2.11.0 (2022-08-03)

Features

  • introduce RPC CancelResumableWriteRequest (#1518) (f8811c6)

Documentation

  • Refactor Custom Dual Region sample to work with API changes (#1516) (a60cace)

Dependencies

  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.5 (#1527) (77072e3)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.7 (#1530) (8c2ebad)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.8 (#1534) (723b100)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v3 (#1526) (f7fc0d2)
  • update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 (#1524) (0e74093)

2.10.0 (2022-07-13)

Features

  • Custom Placement Config Dual Region Support (#1470) (36440fc)

Bug Fixes

Documentation

  • sample: upgrade maven-surefire and remove junit-platform-native (#1476) (9b222e4)

Dependencies

  • update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.13 (#1501) (36e3898)

2.9.3 (2022-07-08)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20220705-1.32.1 (#1494) (5612f0f)

2.9.2 (2022-07-06)

Dependencies

2.9.1 (2022-07-06)

Dependencies

  • update dependency com.google.cloud:google-cloud-pubsub to v1.120.0 (#1487) (5a8f6e5)

2.9.0 (2022-06-27)

Features

  • Enable REST transport for most of Java and Go clients (#1469) (cfb6fd8)

Documentation

  • Clarified how clients should work with resumable uploads (#1457) (15baa27)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 (#1468) (1a817fe)
  • update dependency org.graalvm.buildtools:junit-platform-native to v0.9.12 (#1463) (d42c570)
  • update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.12 (#1464) (2f35a4f)
  • update kms.version to v0.96.3 (#1471) (ceb7fa6)

2.8.1 (2022-06-13)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20220608-1.32.1 (#1448) (96676cd)

2.8.0 (2022-06-08)

Features

  • Prefix/Suffix Matches Lifecycle Condition (#1389) (20c8848)
  • Support AbortIncompleteMultipartUpload LifecycleAction (#1347) (7c3aba2)

Bug Fixes

  • update request method of HttpStorageRpc to properly configure offset on requests (#1434) (72dc0df)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20220604-1.32.1 (#1438) (df8fcd9)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.119.0 (#1426) (93ba28c)

2.7.2 (2022-05-27)

Dependencies

2.7.1 (2022-05-24)

Dependencies

2.7.0 (2022-05-24)

Features

  • add build scripts for native image testing in Java 17 (#1440) (#1400) (274a373)
  • add Storage#downloadTo (#1354) (5a565a7)
  • change GCS gRPC API to get user billing project from gRPC metadata instead of CommonRequestParams, and remove latter (#1396) (8a7755c)

Documentation

  • add new storage_download_byte_range samples (#1325) (cef3d13)
  • sample: removing unnecessary native-image-support dependency (#1373) (3a246ef)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20220509-1.32.1 (#1386) (4e93c8e)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.116.4 (#1360) (66c7ffe)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.117.0 (#1382) (0cd01a0)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.118.0 (#1397) (fc0c187)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.11.0 (#1398) (8834423)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 (#1402) (32cded4)
  • update kms.version to v0.95.4 (#1361) (2f42ba2)

2.6.1 (2022-04-15)

Bug Fixes

  • add gccl-invocation-id interceptor (#1309) (335c267)
  • java: add service account email to Native Image testing kokoro job (#1348) (9f76fcc)

Documentation

  • Adding PubSub Notification Samples (#1317) (fa9920d)
  • Adding Samples for Creating Dual Region Buckets (#1341) (9396061)
  • Update CreateBucketPubSubNotification to have line without horizontal scrolling (#1335) (09b7842)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20220401-1.32.1 (#1337) (a5050e2)
  • update dependency com.google.cloud:google-cloud-pubsub to v1.116.3 (#1327) (9d8c520)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 (#1352) (ab46f98)
  • update dependency com.google.cloud:native-image-support to v0.12.11 (#1319) (c338c54)
  • update dependency com.google.cloud:native-image-support to v0.13.1 (#1353) (0f76d27)
  • update kms.version to v0.95.2 (#1331) (2ca4883)
  • update kms.version to v0.95.3 (#1346) (a4f9503)

2.6.0 (2022-03-30)

Features

  • replace enum with string representation for predefined ACLs and public_access_prevention (#1323) (4dd1a88)

Bug Fixes

  • java: add configurations for Storage tests (#1305) (2bacf92)
  • update boundary checking of BlobReadChannel when limit() is used (#1324) (f21f624)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 (#1321) (f48d8dd)

Documentation

2.5.1 (2022-03-28)

Dependencies

  • update dependency com.google.cloud:google-cloud-pubsub to v1.116.2 (#1310) (fb64493)

2.5.0 (2022-03-25)

Features

Documentation

  • Adding Samples for printing all Acls for a file and for a specific user (#1288) (32fe388)
  • Copy all storage samples from java-docs-samples (#1258) (48b99be)
  • sample: Add Native Image sample for Storage (#1283) (375874d)

Dependencies

  • allow snapshot to update properly (#1311) (a5d32f2)
  • update dependency com.google.cloud:native-image-support to v0.12.10 (#1295) (3b3ecce)
  • update dependency org.graalvm.buildtools:junit-platform-native to v0.9.10 (#1296) (6f1b142)
  • update dependency org.graalvm.buildtools:junit-platform-native to v0.9.11 (#1306) (1527ba0)
  • update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.10 (#1297) (3f64f11)
  • update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.11 (#1307) (e45ae07)

2.4.5 (2022-03-04)

Documentation

  • Adding Samples for Adding/Removing File Owners (#1273) (6fad19c)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 (#1284) (0f71ae4)
  • update kms.version to v0.95.1 (#1287) (8334d3c)

2.4.4 (2022-02-28)

Dependencies

2.4.3 (2022-02-25)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20220210-1.32.1 (#1269) (b3933be)

Documentation

  • Adding Samples for Add/Remove Bucket Default Owner (#1260) (7223626)
  • Adding Samples for Add/Remove Bucket Owner (#1272) (9d25fa9)
  • Adding Samples for Printing Bucket ACLs and Printing Bucket ACL for a specific user. (#1236) (d82333b)

2.4.2 (2022-02-11)

Dependencies

  • update actions/github-script action to v6 (#1241) (366d738)

2.4.1 (2022-02-08)

Dependencies

2.4.0 (2022-02-03)

Features

  • Change RewriteObjectRequest to specify bucket name, object name and KMS key outside of Object resource (#1218) (8789e4f)
  • re-generate gapic client to include full GCS gRPC API (#1189) (3099a22)
  • Update definition of RewriteObjectRequest to bring to parity with JSON API support (#1220) (7845c0e)

Bug Fixes

  • Remove post policy v4 client side validation (#1210) (631741d)

Dependencies

  • java: update actions/github-script action to v5 (#1339) (#1215) (deb110b)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 (#1219) (623e68b)

2.3.0 (2022-01-12)

Features

Bug Fixes

  • java: run Maven in plain console-friendly mode (#1301) (#1186) (1e55dba)
  • Remove all client side validation for OLM, allow nonspecific lif… (#1160) (5a160ee)

Dependencies

2.2.3 (2022-01-07)

Bug Fixes

  • do not cause a failure when encountering no bindings (#1177) (16c2aef)
  • java: add -ntp flag to native image testing command (#1169) (b8a6395)
  • update retry handling to retry idempotent requests that encounter unexpected EOF while parsing json responses (#1155) (8fbe6ef)

Documentation

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 (#1191) (3b384cf)
  • update dependency org.apache.httpcomponents:httpcore to v4.4.15 (#1171) (57f7a74)

2.2.2 (2021-12-06)

Bug Fixes

  • update StorageOptions to not overwrite any previously set host (#1142) (05375c0)

Documentation

  • Add comments to GCS gRPC API proto spec to describe how naming work (#1139) (417c525)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20211201-1.32.1 (#1165) (9031836)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.1 (#1163) (feca2c6)
  • update kms.version to v0.94.0 (#1164) (8653783)

2.2.1 (2021-11-15)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.0 (#1146) (a5d13a9)

2.2.0 (2021-11-02)

Features

  • next release from mainline is 2.2.0 (#1124) (53a755b)
  • update all automatic retry behavior to be idempotency aware (#1132) (470b8cd)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20211018-1.32.1 (#1123) (edc0e00)
  • update kms.version to v0.93.2 (#1120) (a5c007d)

2.1.9 (2021-10-19)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.4.0 (#1115) (37d892b)

2.1.8 (2021-10-18)

Bug Fixes

  • regenerate google.cloud.storage.v2 protos (a7e3b94)

Dependencies

2.1.7 (2021-10-04)

Bug Fixes

  • update PAP to use inherited instead of unspecified (#1051) (6d73e46)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20210918-1.32.1 (#1046) (2c79005)
  • update kms.version to v0.93.0 (#1061) (97b1a2e)

2.1.6 (2021-09-24)

Dependencies

2.1.5 (2021-09-22)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.3.0 (#1035) (ae71c24)

2.1.4 (2021-09-20)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20210914-1.32.1 (#1025) (ff56d5e)
  • update kms.version to v0.92.1 (#1023) (ca1afcf)

2.1.3 (2021-09-15)

Dependencies

2.1.2 (2021-09-14)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.1 (#1011) (0bf06a5)

2.1.1 (2021-09-03)

Documentation

  • Modify OLM notice to recommend upgrading to latest version. (#932) (be72433)

Dependencies

  • update dependency com.google.cloud:google-cloud-conformance-tests to v0.2.0 (#982) (c7460a3)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.0 (#989) (6745c9e)
  • update kms.version to v0.91.3 (#991) (1f15022)

2.1.0 (2021-08-24)

Features

  • fix post policy escape bug, update conformance tests (#924) (d8329c3)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 (#976) (5cac14d)
  • update kms.version to v0.91.2 (#977) (1c60e6e)

2.0.2 (2021-08-19)

Dependencies

2.0.1 (2021-08-11)

Features

Bug Fixes

  • incorrectly labeled span list(String,Map) (#946) (0c1fdcf)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 (#961) (69543dc)

2.0.0 (2021-08-09)

⚠ BREAKING CHANGES

  • migrate to java8 (#950)

Features

1.118.1 (2021-08-06)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v2 (#941) (effefa6)

1.118.0 (2021-07-13)

Features

  • fix signed url mismatch in BlobWriteChannel (#915) (8b05867)

Bug Fixes

  • correct lastChunk retry logic in BlobWriteChannel (#918) (ab0228c)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20210127-1.32.1 (#910) (2c54acc)
  • update kms.version to v0.90.0 (#911) (1050725)

1.117.1 (2021-06-30)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v1.4.0 (#905) (dd084d1)

1.117.0 (2021-06-28)

Features

  • Add from and to storage url options for BlobId (#888) (1876a58)
  • add support of public access prevention (#636) (3d1e482)

Bug Fixes

  • Add shopt -s nullglob to dependencies script (#894) (901fd33)
  • Update dependencies.sh to not break on mac (#879) (bc6d1d9)

Documentation

  • add notice about broken OLM experience (#898) (73e7cdf)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20210127-1.31.5 (#889) (99138a4)

1.116.0 (2021-06-14)

Features

  • Add shouldReturnRawInputStream option to Get requests (#872) (474dfae)

Bug Fixes

  • ci: remove linkage-monitor to pass 1.106.1 patch ci (#862) (94a9159)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v1.3.0 (#863) (37bfd5e)
  • update kms.version (#860) (f1430ff)
  • update kms.version to v0.89.3 (#873) (ee7c236)

1.115.0 (2021-06-01)

Features

  • add gcf-owl-bot[bot] to ignoreAuthors (#837) (fe8e98a)

Bug Fixes

  • improve error detection and reporting for BlobWriteChannel retry state (#846) (d0f2184), closes #839
  • update BucketInfo translation code to properly handle lifecycle rules (#852) (3b1df1d), closes #850

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v1.2.0 (#836) (c1752ce)
  • update kms.version to v0.88.4 (#830) (7e3dc28)
  • update kms.version to v0.89.0 (#855) (29236e9)

1.114.0 (2021-05-13)

Features

  • Remove client side vaildation for lifecycle conditions (#816) (5ec84cc)

Bug Fixes

  • test: update blob paths used in storage.it.ITStorageTest#testDownloadPublicBlobWithoutAuthentication (#759) (#817) (1a576ca)

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.31.5 (#820) (9e1bc0b)
  • update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.88.3 (#797) (747e7e4)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v1.1.0 (#815) (e210de9)

1.113.16 (2021-04-23)

Bug Fixes

  • release scripts from issuing overlapping phases (#784) (36751f5)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.1 (#789) (c005e87)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v1 (#794) (195fead)

1.113.15 (2021-04-13)

Bug Fixes

  • test: update blob paths used in storage.it.ITStorageTest#testDownloadPublicBlobWithoutAuthentication (#759) (9a6619c)
  • typo (#779) (3c3d6b4)

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.31.4 (#774) (ad9ff7b)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.0 (#771) (5605095)
  • update kms.version to v0.88.1 (#758) (3e57ea9)
  • update kms.version to v0.88.2 (#778) (6edfc4c)
  • update truth (#767) (4e5ee03)

1.113.14 (2021-03-11)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.1 (#749) (bb42107)
  • update kms.version to v0.88.0 (#753) (eaedb64)

1.113.13 (2021-03-08)

Bug Fixes

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.31.3 (#737) (71b3842)

1.113.12 (2021-02-26)

Bug Fixes

  • retrying get remote offset and recover from last chunk failures. (#726) (b41b881)

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.31.2 (#686) (6b1f036)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.0 (#732) (c98413d)
  • update kms.version to v0.87.7 (#724) (3229bd8)
  • update kms.version to v0.87.8 (#733) (a21b75f)

1.113.11 (2021-02-19)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.19.0 (#719) (5831bfa)

1.113.10 (2021-02-17)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20210127-1.31.0 (#706) (04db8f7)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.18.0 (#683) (6f172eb)
  • update kms.version to v0.87.6 (#702) (a50c333)

1.113.9 (2021-01-12)

Bug Fixes

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.1 (#678) (d4a237f)
  • update kms.version to v0.87.5 (#662) (20e7c1f)

1.113.8 (2020-12-16)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.0 (#659) (5fa03fa)

1.113.7 (2020-12-14)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.1 (f1fc884)

1.113.6 (2020-12-10)

Bug Fixes

  • content-length missing in offset request (#647) (3cd3815)

Dependencies

1.113.5 (2020-12-07)

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.31.1 (#611) (7c4c759)
  • update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.87.2 (#625) (243a3cb)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20201112-1.30.10 (#613) (b0e24db)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20201112-1.31.0 (#641) (11da9c7)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.0 (#639) (68a3af9)
  • update dependency org.apache.httpcomponents:httpcore to v4.4.14 (#637) (af53902)

1.113.4 (2020-11-13)

Bug Fixes

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.15.0 (#610) (ac65e5b)

1.113.3 (2020-11-06)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.14.1 (#592) (25e8e6a)
  • update kms.version to v0.87.1 (#595) (1e399cd)

1.113.2 (2020-10-26)

Documentation

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.30.11 (#575) (99838e6)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20200927-1.30.10 (#539) (5e49013)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.0 (#529) (dc58856)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.2 (#549) (c59c28d)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.12.1 (#566) (f1dedfb)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.13.0 (#570) (ef55f49)

1.113.1 (2020-09-17)

Bug Fixes

  • KMS Bad Key error when using existing Blob context to overwrite object (#507) (4d9c490)
  • When passing a sub-array (offset, length) to the Storage#create method the array is needlessly cloned (#506) (9415bb7), closes #505

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20200814-1.30.10 (#499) (af91d7d)

Documentation

1.113.0 (2020-09-03)

Features

  • expose timeStorageClassUpdated property of blob's (#456) (57853ec)

Bug Fixes

  • add missing FieldSelector inside BucketField and BlobField (#484) (c2aa9cf)
  • prevent NPE in RemoteStorageHelper.cleanBuckets (#492) (db358c8)
  • set IT_SERVICE_ACCOUNT_EMAIL for nightly integration test (#479) (23c379e)

Documentation

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.9.0 (#493) (0e4f70f)
  • update kms.version to v0.87.0 (#489) (a045d54)

1.112.0 (2020-08-27)

Features

  • add support of customTime metadata (#413) (6f4585e)
  • add support of customTimeBefore and daysSinceCustomTime (#396) (1af8288)
  • add support of daysSinceNoncurrentTime and noncurrentTimeBefore OLM options (#335) (1e3e88a)
  • add support of null to remove the CORS configuration from bucket (#438) (f8a4b12)
  • add support of startOffset and endOffset (#430) (38c1c34)
  • auto content-type on blob creation (#338) (66d1eb7)
  • expose updateTime field of the bucket (#449) (f0e945e)

Bug Fixes

  • Ignore CONTRIBUTING.md (#447) (bdacdc9), closes #446 #446
  • PostPolicyV4 classes could be improved (#442) (8602b81)
  • docs: example of Storage#testIamPermissions (#434) (275f452)
  • PostPolicyV4.PostFieldsV4.Builder.addCustomMetadataField() allows to add prefixed an not prefixed custom fields (#398) (02dc3b5)

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.30.10 (#423) (fbfa9ec)
  • update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.86.1 (#463) (cf94230)
  • update dependency com.google.api.grpc:proto-google-cloud-kms-v1 to v0.86.1 (#464) (6c372fa)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20200611-1.30.10 (#428) (6ef57eb)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20200727-1.30.10 (#457) (edfd1e6)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.4 (#452) (12bc02d)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.6 (#458) (f8d6e15)

1.111.2 (2020-07-10)

Dependencies

  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.3 (#425) (727b173)

1.111.1 (2020-07-01)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20200611-1.30.9 (#406) (b2ebea7)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.2 (#414) (4451887)
  • update dependency google-cloud-shared-config to v0.9.0 (#417)
  • update dependency grpc-google-cloud-kms-v1 to v0.86.0 (#417)
  • update dependency proto-google-cloud-kms-v1 to v0.86.0 (#417)

1.111.0 (2020-06-25)

Features

Reverts

  • Revert "feat: expose all the methods of notification (#141)" (#393) (3e02b9c), closes #141 #393

1.110.0 (2020-06-18)

Features

1.109.1 (2020-06-15)

Dependencies

  • bump shared-deps version and add back certain test deps (#340) (afd0339)
  • update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.1 (#368) (ccaf480)

1.109.0 (2020-06-11)

Features

  • adopt flatten-maven-plugin and java-shared-dependencies (#325) (209cae3)
  • stub implementation of StorageRpc for the sake of testing (#351) (dd58025)

Bug Fixes

  • blob.reload() does not work as intuitively expected (#308) (a2bab58)

Documentation

  • fix: update client documentation link (#324) (eb8940c)
  • Add doc for equals method in blob (#311) (91fc36a)
  • catch actual exception in java doc comment (#312) (9201de5), closes #309
  • update CONTRIBUTING.md to include code formatting (#534) (#315) (466d08f)
  • update readme to point client libarary documentation (#317) (8650f80)

Dependencies

  • update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#301) (ff2dee2)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20200410-1.30.9 (#296) (2e55aa2)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20200430-1.30.9 (#319) (3d03fa3)
  • update dependency com.google.cloud:google-cloud-conformance-tests to v0.0.11 (#320) (6c18c88)

1.108.0 (2020-04-30)

Features

Bug Fixes

  • Documentation for Blob.update() and Storage.update() methods is confusing/incorrect (#261) (876405f), closes #252

Dependencies

  • pin mockito version to work with java 7 (#292) (8eb2fff)
  • update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.85.1 (#273) (7b5e7d1)
  • update dependency com.google.api.grpc:proto-google-cloud-kms-v1 to v0.85.1 (#274) (0ab4304)
  • update dependency com.google.cloud:google-cloud-conformance-tests to v0.0.10 (#281) (f3dee7e)
  • update dependency com.google.http-client:google-http-client-bom to v1.35.0 (#282) (1c1c1be)
  • update dependency io.grpc:grpc-bom to v1.28.1 (#250) (b35e81c)
  • update dependency io.grpc:grpc-bom to v1.29.0 (#275) (9b241b4)
  • update dependency org.threeten:threetenbp to v1.4.4 (#278) (7bae49f)

Documentation

  • label legacy storage classes in documentation (#267) (50e5938), closes #254

1.107.0 (2020-04-14)

Bug Fixes

  • Blob API Doc is confusing (#233) (b5208b8)
  • Blob.downloadTo() methods do not wrap RetryHelper$RetryHelperException (#218) (5599f29)
  • implementations of FromHexString() for md5 and crc32c (#246) (c9b23b3)
  • storage-client-lib-docs to right location (#213) (133d137)
  • surface storage interface expectations correctly. (#241) (130a641)
  • throw io exception instead of storage exception (#229) (4d42a4e)

Reverts

Dependencies

  • update conformance test dep (#210) (010c112)
  • update core dependencies (#182) (3f0c59c)
  • update core dependencies to v1.93.4 (#231) (1bb5787)
  • update dependency com.google.api:api-common to v1.9.0 (#209) (789ceaa)
  • update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.85.0 (#222) (03eace6)
  • update dependency com.google.api.grpc:proto-google-cloud-kms-v1 to v0.85.0 (#223) (aaf6a17)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20200326-1.30.9 (#239) (b9d0a70)
  • update dependency com.google.cloud.samples:shared-configuration to v1.0.14 (#207) (be74072)
  • update dependency com.google.guava:guava to v29 (#240) (7824c15)
  • update dependency org.threeten:threetenbp to v1.4.2 (#200) (84faad1)
  • update dependency org.threeten:threetenbp to v1.4.3 (#228) (be40a70)

Documentation

1.106.0 (2020-03-17)

Bug Fixes

  • rely on google core for SSLException's (#188) (2581f3c)

Dependencies

  • update dependency com.google.apis:google-api-services-storage to v1-rev20200226-1.30.9 (#189) (b61a820)

1.105.2 (2020-03-13)

Bug Fixes

  • connection closed prematurely in BlobReadChannel & ConnectionReset (#173) (27bccda)

Dependencies

1.105.1 (2020-03-09)

Bug Fixes

  • use %s instead of %d format specifier in checkArgument (#163) (ee16197)

Dependencies

  • update core dependencies to v1.93.1 (#161) (960572f)
  • update dependency com.google.api-client:google-api-client to v1.30.9 (#154) (84dfab9)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20191127-1.30.9 (#164) (d9ba7c7)
  • update dependency com.google.cloud:google-cloud-conformance-tests to v0.0.7 (#160) (cbf8082)
  • update dependency org.apache.httpcomponents:httpclient to v4.5.12 (#168) (45b3992)

1.105.0 (2020-02-28)

Features

  • add IAM Conditions support (#120) (8256f6d)
  • examples of creating a signed url for a blob with generation (#140) (420212a)

Dependencies

  • update core dependencies to v1.93.0 (#153) (836a2e7)
  • update dependency com.google.api:gax-bom to v1.54.0 (#152) (e86051f)
  • update dependency com.google.cloud:google-cloud-conformance-tests to v0.0.6 (#151) (2627a93)
  • update dependency io.grpc:grpc-bom to v1.27.2 (e56f8ce)

1.104.0 (2020-02-19)

Features

  • add delimiter BlobListOption (#102) (b30a675)
  • disableGzipContent option on create with InputStream (#36) (#82) (65d3739)

Bug Fixes

Dependencies

  • update dependency com.google.api-client:google-api-client to v1.30.8 (#111) (47b1495)
  • update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.83.1 (#118) (753d870)
  • update dependency com.google.api.grpc:proto-google-cloud-kms-v1 to v0.83.1 (#119) (2c8b9ec)
  • update dependency com.google.http-client:google-http-client-bom to v1.34.2 (#131) (fce5b33)
  • update dependency com.google.protobuf:protobuf-bom to v3.11.3 (#113) (044de39)
  • update dependency com.google.protobuf:protobuf-bom to v3.11.4 (#134) (1af989e)
  • update dependency io.opencensus:opencensus-api to v0.25.0 (#129) (3809576)
  • update to gRPC 1.27.0 (#105) (64f34bd)

1.103.1 (2020-01-27)

Bug Fixes

  • make the getStorageClass() method public (#22) (7fb1f6c)

Dependencies

  • update dependency com.google.truth:truth to v1.0.1 (#60) (3cedc8f)
  • update dependency org.threeten:threetenbp to v1.4.1 (4c0f03a)

1.103.0 (2020-01-06)

Features

Dependencies

  • update core transport dependencies (#16) (d0a82ab)
  • update dependency com.google.apis:google-api-services-storage to v1-rev20191011-1.30.3 (#7) (5ac5b8a)