-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide streamed access to object data #61
Comments
I am not sure I understand the issue.
The underlying API for the service (apiary or XML) does not support streaming RPC, so every write/fetch has to be done via a separate RPC call. I expect that to change in the future when the service will support gRPC. Is that what the issue about? |
Clarification would be helpful but now I think you were probably referring to the non-resumable write option (e.g. if you were using the apiary client directly you would do something like insertObject.getMediaHttpUploader().setDirectUploadEnabled(true))? And similarly for readers. If so, then I think we should split the issue to reader and writer. As for writers it is highly recommended (and also mandated in AE classic) to use resumable writes when content is not small (some examples suggest < 2MB, AE currently limit is 10MB). When the content is small one could write it via the create method (and because the content is small the value of Stream over byte[] is not that meaningful). As for readers, I think that recommendation is weaker (and AE class constraint is wider 32MB) but still |
Something like: /**
* Returns a stream that can be used to read a stored object.
*
* @param uri the id of the object to be read
* @param options options specifying how the object is to be opened; defaults to READ
* @return a stream for reading the object
* @throws IOException if a problem occurred accessing the object
*/
InputStream newInputStream(URI uri, OpenOption... options) throws IOException;
/**
* Returns a stream that can be used to write an object.
*
* @param uri the id of the object to be written
* @param options options specifying how the object is to be opened;
* defaults to CREATE, TRUNCATE_EXISTING, WRITE
* @return a stream for writing the object
* @throws IOException if a problem occurred accessing the object
*/
OutputStream newOutputStream(URI uri, OpenOption... options) throws IOException; which provides an idiomatic, stream-based way to upload and download object content. These would map to GET and POST operations that allow the content to be transferred with a single exchange. |
See my reply above. |
Hmm, I think we should definitely have Input/Output Stream methods. This is how AWS does it, not to mention gcloud-node does this as well. |
Channel is a stream. It is part of the newer java nio API. see my comment in #46. |
So you're saying that we already have this functionality? What's the gcloud-java equivalent of AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
S3Object object = s3Client.getObject(
new GetObjectRequest(bucketName, key));
InputStream objectData = object.getObjectContent();
// Process the objectData stream.
objectData.close(); |
I think the main discussion here is about a request for a stream based one RPC call (non-serialize/non-resumeable) vs current state which provides a serializable and resumeable stream based on multiple resumable RPCs. I agree that if that is indeed the topic discussed here the title is wrong as we do provide a "streamed access to object data". |
see DownloadAction in the storage example: https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/src/main/java/com/google/gcloud/examples/StorageExample.java try (BlobReadChannel reader = storage.reader(blob.bucket(), blob.name())) {
WritableByteChannel channel = Channels.newChannel(writeTo);
ByteBuffer bytes = ByteBuffer.allocate(64 * 1024);
while (reader.read(bytes) > 0) {
bytes.flip();
channel.write(bytes); // or do whatever with the bytes read.
bytes.clear();
}
} |
And if for any reason one prefers not to use java.nio and use InputStream instead he can do: InputStream input = Channels.newInputStream(storage.reader(blob.bucket(), blob.name())); |
Channels are not as well supported as streams and there is no downside to providing both. Path localData = Paths.get("localData.txt");
try (OutputStream os = storage.newOutputStream(TEST_OBJECT)) {
Files.copy(localData, os);
} That's setting aside the implementation difference where the Blob channel performs multiple (billed) operations against GCS rather than just one. Also BlobReadChannel is wrapping HttpResponse objects that can already provide a InputStream over their content directly. |
|
One more data point to the nioChannel vs io.Stream discussions (which is minor in my mind as they are both "streams" can be trivially converted from one another) is that it looks like grpc-java is based on Netty which is based on nio. I am not sure how much of the nio would be visible from the grpc layer but if something does it is more likely to efficiently work with other nio related classes. |
@jgeewax I hope this addressed your concern. We do provide a streaming API to read a content of a Blob and we are using the newer Java standard for it (I assume Amazon API preceded nio but that
|
OK if this is really just a difference between
|
I don't think this will "annoy" people. I think using the channel is the right direction for the reasons I mentioned above (and the conversion is a trivial one-liner) and for that reason I don't think we should pollute the API with 2 flavors that provide the same, and only channels would be able to support the async option in the future. I am closing this issue (feel free to re-open if you think it should be further discussed) and I created issue #72 for using one RPC for read-write vs using chunks (multiple resumable RPC calls). |
* updated versions.txt [ci skip] * updated pom.xml [ci skip]
🤖 I have created a release *beep* *boop* --- ## [0.5.0](googleapis/java-video-live-stream@v0.4.0...v0.5.0) (2022-06-30) ### Features * Enable REST transport for most of Java and Go clients ([googleapis#60](googleapis/java-video-live-stream#60)) ([d35bb12](googleapis/java-video-live-stream@d35bb12)) ### Bug Fixes * update gapic-generator-java with mock service generation fixes ([googleapis#63](googleapis/java-video-live-stream#63)) ([c08deea](googleapis/java-video-live-stream@c08deea)) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([googleapis#59](googleapis/java-video-live-stream#59)) ([bb6245d](googleapis/java-video-live-stream@bb6245d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
…onfig to v1.5.1 (#61) * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- ## [0.4.1](googleapis/java-certificate-manager@v0.4.0...v0.4.1) (2022-07-13) ### Bug Fixes * enable longpaths support for windows test ([#1485](https://github.com/googleapis/java-certificate-manager/issues/1485)) ([#60](googleapis/java-certificate-manager#60)) ([6b0f962](googleapis/java-certificate-manager@6b0f962)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
…onfig to v1.5.3 (#61) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.5.1` -> `1.5.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/compatibility-slim/1.5.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.5.3/confidence-slim/1.5.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>googleapis/java-shared-config</summary> ### [`v1.5.3`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​153-httpsgithubcomgoogleapisjava-shared-configcomparev152v153-2022-07-27) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.5.2...v1.5.3) ##### Dependencies - update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 ([#​497](https://togithub.com/googleapis/java-shared-config/issues/497)) ([1fc6ab4](https://togithub.com/googleapis/java-shared-config/commit/1fc6ab445624cd4f9c8b161d109f346a9e5ed09a)) - Update doclet to latest version 1.6.0 ([38fb7c3](https://togithub.com/googleapis/java-shared-config/commit/38fb7c3957fb6c9b2da10f9e463cc93a8b80a3a4)) ### [`v1.5.2`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​152-httpsgithubcomgoogleapisjava-shared-configcomparev151v152-2022-07-25) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.5.1...v1.5.2) ##### Dependencies - update dependency com.puppycrawl.tools:checkstyle to v10 ([#​435](https://togithub.com/googleapis/java-shared-config/issues/435)) ([bfc8ce1](https://togithub.com/googleapis/java-shared-config/commit/bfc8ce1deca6292147d002d3afe22a09840aa5d6)) - update dependency org.graalvm.buildtools:junit-platform-native to v0.9.13 ([#​488](https://togithub.com/googleapis/java-shared-config/issues/488)) ([39b91ee](https://togithub.com/googleapis/java-shared-config/commit/39b91ee1283f0a5fbbe63e8bfd1ec97ab4ab377e)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.13 ([#​489](https://togithub.com/googleapis/java-shared-config/issues/489)) ([cc3bcfa](https://togithub.com/googleapis/java-shared-config/commit/cc3bcfa2d6717441a8d5b5048fa78c2cf7aabf2b)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-video-stitcher). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xMzUuMSIsInVwZGF0ZWRJblZlciI6IjMyLjEzNS4xIn0=-->
…-plugin to v3.4.1 (#61) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-javadoc-plugin](https://maven.apache.org/plugins/) ([source](https://togithub.com/apache/maven-javadoc-plugin)) | `3.4.0` -> `3.4.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/compatibility-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/confidence-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bare-metal-solution). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xNjEuMCIsInVwZGF0ZWRJblZlciI6IjMyLjE2MS4wIn0=-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-cloud-core](https://togithub.com/googleapis/python-cloud-core) | `==2.3.1` -> `==2.3.2` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/compatibility-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/confidence-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery-data-exchange). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMDguMiIsInVwZGF0ZWRJblZlciI6IjMyLjIwOC4yIn0=-->
🤖 I have created a release *beep* *boop* --- ## [0.2.5](https://togithub.com/googleapis/java-gke-backup/compare/v0.2.4...v0.2.5) (2022-10-03) ### Dependencies * Update dependency certifi to v2022.9.24 ([#60](https://togithub.com/googleapis/java-gke-backup/issues/60)) ([317ef8f](https://togithub.com/googleapis/java-gke-backup/commit/317ef8f5c11f3cd6275e51104d44b33e61099b83)) * Update dependency charset-normalizer to v2.1.1 ([#64](https://togithub.com/googleapis/java-gke-backup/issues/64)) ([94eddb9](https://togithub.com/googleapis/java-gke-backup/commit/94eddb9aa24138d9f393d8ab32160077bc4e1b0a)) * Update dependency click to v8.1.3 ([#65](https://togithub.com/googleapis/java-gke-backup/issues/65)) ([c2e2275](https://togithub.com/googleapis/java-gke-backup/commit/c2e227566d56769c98fc4890d4c841b94f11f918)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#85](https://togithub.com/googleapis/java-gke-backup/issues/85)) ([93b2282](https://togithub.com/googleapis/java-gke-backup/commit/93b2282dde9d35276d937bdd84aa26d5412c3bbc)) * Update dependency gcp-releasetool to v1.8.8 ([#61](https://togithub.com/googleapis/java-gke-backup/issues/61)) ([6f63d57](https://togithub.com/googleapis/java-gke-backup/commit/6f63d57fbd09e5f1cbe52de7dcc28e2afa8e9b32)) * Update dependency google-api-core to v2.10.1 ([#66](https://togithub.com/googleapis/java-gke-backup/issues/66)) ([8e91da3](https://togithub.com/googleapis/java-gke-backup/commit/8e91da351601167fa3620b83981bc1d66de81563)) * Update dependency google-auth to v2.12.0 ([#67](https://togithub.com/googleapis/java-gke-backup/issues/67)) ([296cf38](https://togithub.com/googleapis/java-gke-backup/commit/296cf38a057da02650ca2c3fbe22be437c26c67c)) * Update dependency google-cloud-core to v2.3.2 ([#62](https://togithub.com/googleapis/java-gke-backup/issues/62)) ([ca1f3c2](https://togithub.com/googleapis/java-gke-backup/commit/ca1f3c2424a2313d7143c43441b63861618ac14a)) * Update dependency google-cloud-storage to v2.5.0 ([#68](https://togithub.com/googleapis/java-gke-backup/issues/68)) ([3799767](https://togithub.com/googleapis/java-gke-backup/commit/379976763fa24ff37216149fd4af99f5e977d3d3)) * Update dependency google-crc32c to v1.5.0 ([#69](https://togithub.com/googleapis/java-gke-backup/issues/69)) ([9e57fb5](https://togithub.com/googleapis/java-gke-backup/commit/9e57fb5a3ece05a750a5b4f8180fd1eaa97d8964)) * Update dependency googleapis-common-protos to v1.56.4 ([#63](https://togithub.com/googleapis/java-gke-backup/issues/63)) ([d29e652](https://togithub.com/googleapis/java-gke-backup/commit/d29e6527be55672bb72e2a51f16580adecab2b75)) * Update dependency importlib-metadata to v4.12.0 ([#78](https://togithub.com/googleapis/java-gke-backup/issues/78)) ([de743e5](https://togithub.com/googleapis/java-gke-backup/commit/de743e5c2e11a3cf67a6553727bded09bc33d233)) * Update dependency jeepney to v0.8.0 ([#79](https://togithub.com/googleapis/java-gke-backup/issues/79)) ([5b9831b](https://togithub.com/googleapis/java-gke-backup/commit/5b9831b0a8692a4c7c0fdeb2dacce31f2847a1a6)) * Update dependency jinja2 to v3.1.2 ([#80](https://togithub.com/googleapis/java-gke-backup/issues/80)) ([7929d9b](https://togithub.com/googleapis/java-gke-backup/commit/7929d9bc679b9feb85d2fcf51f77f3a9a0161877)) * Update dependency keyring to v23.9.3 ([#81](https://togithub.com/googleapis/java-gke-backup/issues/81)) ([95a1f64](https://togithub.com/googleapis/java-gke-backup/commit/95a1f64147f5821c63f391a6a4c7909331e8611b)) * Update dependency markupsafe to v2.1.1 ([#70](https://togithub.com/googleapis/java-gke-backup/issues/70)) ([947bbba](https://togithub.com/googleapis/java-gke-backup/commit/947bbba22d90b9cc3317f3138eac68d172bc01bf)) * Update dependency protobuf to v3.20.2 ([#71](https://togithub.com/googleapis/java-gke-backup/issues/71)) ([0eb5782](https://togithub.com/googleapis/java-gke-backup/commit/0eb57820de0ef678af4f53536d00321dd5ab83ba)) * Update dependency pyjwt to v2.5.0 ([#72](https://togithub.com/googleapis/java-gke-backup/issues/72)) ([f3ef3ab](https://togithub.com/googleapis/java-gke-backup/commit/f3ef3abd9e6a0318ce4f4580a1903a7ac55bfa83)) * Update dependency requests to v2.28.1 ([#73](https://togithub.com/googleapis/java-gke-backup/issues/73)) ([1d6762a](https://togithub.com/googleapis/java-gke-backup/commit/1d6762a15ea03b621607cbb89e086fc89dfc3bf0)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [0.3.1](https://togithub.com/googleapis/java-apigee-registry/compare/v0.3.0...v0.3.1) (2022-10-03) ### Bug Fixes * Additional error codes added to service configuration for retry ([#39](https://togithub.com/googleapis/java-apigee-registry/issues/39)) ([55a9b41](https://togithub.com/googleapis/java-apigee-registry/commit/55a9b417cf04575d2070ad026e5648a494fe076a)) ### Dependencies * Update dependency certifi to v2022.9.24 ([#48](https://togithub.com/googleapis/java-apigee-registry/issues/48)) ([1c6ae70](https://togithub.com/googleapis/java-apigee-registry/commit/1c6ae70cb9ff9e7e98d83ce472ae5526d08f9a35)) * Update dependency charset-normalizer to v2.1.1 ([#53](https://togithub.com/googleapis/java-apigee-registry/issues/53)) ([2130079](https://togithub.com/googleapis/java-apigee-registry/commit/21300793a908ed41c535813ee15ec94b5f5ef018)) * Update dependency click to v8.1.3 ([#54](https://togithub.com/googleapis/java-apigee-registry/issues/54)) ([cf3458b](https://togithub.com/googleapis/java-apigee-registry/commit/cf3458bd2972f3db75c8cbf834be0b383d9e74a0)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#42](https://togithub.com/googleapis/java-apigee-registry/issues/42)) ([38cb4f9](https://togithub.com/googleapis/java-apigee-registry/commit/38cb4f9932c3d6cb4c36d3f61922fd613409607f)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#44](https://togithub.com/googleapis/java-apigee-registry/issues/44)) ([ddaed09](https://togithub.com/googleapis/java-apigee-registry/commit/ddaed0964ae57cd7b799b9acf7b202595af4c781)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#65](https://togithub.com/googleapis/java-apigee-registry/issues/65)) ([882e36b](https://togithub.com/googleapis/java-apigee-registry/commit/882e36b2d21ff601f569aa79dfe840cd41bf0438)) * Update dependency gcp-releasetool to v1.8.8 ([#49](https://togithub.com/googleapis/java-apigee-registry/issues/49)) ([3a927a3](https://togithub.com/googleapis/java-apigee-registry/commit/3a927a3df5a8cf5cfff79faede5387291a3d443e)) * Update dependency google-api-core to v2.10.1 ([#55](https://togithub.com/googleapis/java-apigee-registry/issues/55)) ([f841a07](https://togithub.com/googleapis/java-apigee-registry/commit/f841a07c0b1c2fa585f7e665208d6a6b7843c75c)) * Update dependency google-auth to v2.11.1 ([#50](https://togithub.com/googleapis/java-apigee-registry/issues/50)) ([7b450cb](https://togithub.com/googleapis/java-apigee-registry/commit/7b450cbeadc08b8dc26fbd4738ce47788a5cf330)) * Update dependency google-cloud-core to v2.3.2 ([#51](https://togithub.com/googleapis/java-apigee-registry/issues/51)) ([b7f1110](https://togithub.com/googleapis/java-apigee-registry/commit/b7f111014416ff76fa787085d0d0bc9ab47f9af6)) * Update dependency google-cloud-storage to v2.5.0 ([#56](https://togithub.com/googleapis/java-apigee-registry/issues/56)) ([f3799d3](https://togithub.com/googleapis/java-apigee-registry/commit/f3799d3d2d754ec89c784655d835ecaed4df3406)) * Update dependency google-crc32c to v1.5.0 ([#57](https://togithub.com/googleapis/java-apigee-registry/issues/57)) ([b978c7d](https://togithub.com/googleapis/java-apigee-registry/commit/b978c7d2bed23554998a9f0f047e7211ff37f906)) * Update dependency googleapis-common-protos to v1.56.4 ([#52](https://togithub.com/googleapis/java-apigee-registry/issues/52)) ([9e069f1](https://togithub.com/googleapis/java-apigee-registry/commit/9e069f1d96c78fdaedbf57a95d05ada18d57ea0f)) * Update dependency importlib-metadata to v4.12.0 ([#58](https://togithub.com/googleapis/java-apigee-registry/issues/58)) ([370bd1e](https://togithub.com/googleapis/java-apigee-registry/commit/370bd1eba82d820fe7156c276ee5e4a5cbf3f9e0)) * Update dependency jeepney to v0.8.0 ([#59](https://togithub.com/googleapis/java-apigee-registry/issues/59)) ([7a63034](https://togithub.com/googleapis/java-apigee-registry/commit/7a63034a2a194feed6dc7e8215c5063ad1454072)) * Update dependency jinja2 to v3.1.2 ([#60](https://togithub.com/googleapis/java-apigee-registry/issues/60)) ([4fe2b85](https://togithub.com/googleapis/java-apigee-registry/commit/4fe2b853af3c39d2c46efbdc5027cc34945a736c)) * Update dependency keyring to v23.9.3 ([#61](https://togithub.com/googleapis/java-apigee-registry/issues/61)) ([c8cf1c2](https://togithub.com/googleapis/java-apigee-registry/commit/c8cf1c29cab75b18ab67e372bf3d50b36a4b57e9)) * Update dependency markupsafe to v2.1.1 ([#62](https://togithub.com/googleapis/java-apigee-registry/issues/62)) ([98036ae](https://togithub.com/googleapis/java-apigee-registry/commit/98036ae98fa56eba73cccb88a2af726d20fb2a1d)) * Update dependency protobuf to v3.20.2 ([#63](https://togithub.com/googleapis/java-apigee-registry/issues/63)) ([aa9f0e7](https://togithub.com/googleapis/java-apigee-registry/commit/aa9f0e7cad3940fa02cd69c3b3c3e8c2938e0c1b)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [0.4.0](https://togithub.com/googleapis/java-bigquery-data-exchange/compare/v0.3.2...v0.4.0) (2022-10-03) ### ⚠ BREAKING CHANGES * refactor references to Category message * refresh current dataexchange/v1beta1/* directory to include recent change in protos. Removed common directory and use local enum Category ### Features * Update BigQuery Analytics Hub API v1beta1 client ([#51](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/51)) ([a70b8ac](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/a70b8ac71383a051f384884b043c554e7fb277bc)) ### Bug Fixes * refactor references to Category message ([a70b8ac](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/a70b8ac71383a051f384884b043c554e7fb277bc)) ### Documentation * improve proto documentation. ([a70b8ac](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/a70b8ac71383a051f384884b043c554e7fb277bc)) ### Dependencies * Update dependency cachetools to v5 ([#79](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/79)) ([e7fc966](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/e7fc9667452a94f8f976a00409a8cc3fbe6b502f)) * Update dependency certifi to v2022.9.24 ([#59](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/59)) ([9cdbe53](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/9cdbe538bcb6b9e78346206985db000fa3fef3cf)) * Update dependency charset-normalizer to v2.1.1 ([#63](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/63)) ([ea2d77f](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/ea2d77f5381aa3ee97f4ae936f580614f2228075)) * Update dependency click to v8.1.3 ([#64](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/64)) ([6f0b519](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/6f0b519171a8a9e0a0b8bc254486b2ee99a12599)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#54](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/54)) ([63e56e2](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/63e56e248472e64f0fa6ea2b67c0d8066e3d187e)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#56](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/56)) ([acefe6d](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/acefe6df105aa534ab69283dab25e7555478ef0c)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#83](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/83)) ([1329a2d](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/1329a2db26009e7c844282d65da9256d8789fb46)) * Update dependency gcp-releasetool to v1.8.8 ([#60](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/60)) ([cb20437](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/cb20437ca4a81457d16316e52ac505b06997a5ab)) * Update dependency google-api-core to v2.10.1 ([#65](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/65)) ([5677913](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/56779139cfed3778ae6c95cf3677e0ac05755b3e)) * Update dependency google-auth to v2.12.0 ([#66](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/66)) ([d7d2a29](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/d7d2a294b527a4e947a6c8d1a11db5077a941cec)) * Update dependency google-cloud-core to v2.3.2 ([#61](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/61)) ([b23beaf](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/b23beafe5126b10c86993722019da8f9533bbe19)) * Update dependency google-cloud-storage to v2.5.0 ([#67](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/67)) ([afaf995](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/afaf9951a8e9b23dbe645e7711ad563fff21df43)) * Update dependency google-crc32c to v1.5.0 ([#68](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/68)) ([5810429](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/5810429d1f6fa4e04d8b3aac002cc4df46b93b35)) * Update dependency googleapis-common-protos to v1.56.4 ([#62](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/62)) ([845625c](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/845625cc014de6bd21659ff191fda39120c02969)) * Update dependency importlib-metadata to v4.12.0 ([#69](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/69)) ([de23b25](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/de23b2529f9f9adab51361c8dd772c79233cc956)) * Update dependency jeepney to v0.8.0 ([#74](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/74)) ([d3754be](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/d3754be6555594b3776cb056a7b4511223c51850)) * Update dependency jinja2 to v3.1.2 ([#75](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/75)) ([93f43a4](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/93f43a47322508a9b8f8f7d667e3576666d95d72)) * Update dependency keyring to v23.9.3 ([#76](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/76)) ([0a1b61a](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/0a1b61a9c2144ba523cc8aea7d77a93bbdec2176)) * Update dependency markupsafe to v2.1.1 ([#70](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/70)) ([ab50c0e](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/ab50c0eb2a3e081ec81ac14fbc8d3539086c198f)) * Update dependency protobuf to v3.20.2 ([#71](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/71)) ([b647377](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/b647377c7c430cbb86b5fd7125792ae07be7dda6)) * Update dependency protobuf to v4 ([#80](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/80)) ([409ceed](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/409ceed1a74b5ed066b1c565978900773ffe1b0c)) * Update dependency pyjwt to v2.5.0 ([#72](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/72)) ([e43efcd](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/e43efcdfccfd99571622ed47f14432cf0a42cfdc)) * Update dependency requests to v2.28.1 ([#73](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/73)) ([60746a8](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/60746a81486f3edcef143d91ca0d19cfa9546b3d)) * Update dependency typing-extensions to v4.3.0 ([#77](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/77)) ([2a22b12](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/2a22b12e2860296f4a866c5abb54bc11a0cd8a65)) * Update dependency zipp to v3.8.1 ([#78](https://togithub.com/googleapis/java-bigquery-data-exchange/issues/78)) ([7b1a48a](https://togithub.com/googleapis/java-bigquery-data-exchange/commit/7b1a48a0810d1e5702a6b214e148b97efdac7564)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
* chore(java): add a note in README for migrated split repos Disable renovate bot and flaky bot for split repositories that have moved to the Java monorepo. The Java monorepo will pass the "monorepo=True" parameter to java.common_templates method in its owlbot.py files so that the migration note will not appear in the README in the monorepo. Co-authored-by: Jeff Ching <chingor@google.com> Source-Link: googleapis/synthtool@d4b2916 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:edae91ccdd2dded2f572ec341a768ad180305a3e8fbfd93064b28e237d35920a Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Jeff Ching <chingor@google.com>
The BlobReadChannel and BlobWriteChannel implementations buffer data and perform separate RPC calls when they need to flush the buffer. This allows for retries of the transfer operations but uses more billable operations than just writing the data in a continuous stream.
The text was updated successfully, but these errors were encountered: