Visitar URL original
docs(storage): add Rapid Cache samples by sahusneha2004 · Pull Request #14886 · googleapis/google-cloud-java · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions java-storage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,11 @@ Samples are in the [`samples/`](https://github.com/googleapis/google-cloud-java/
| Delete Folder Recursive | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/DeleteFolderRecursive.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/DeleteFolderRecursive.java) |
| Get Folder | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/GetFolder.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/GetFolder.java) |
| List Folders | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/ListFolders.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/ListFolders.java) |
| Rapid Cache Create | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheCreate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheCreate.java) |
| Rapid Cache Disable | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheDisable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheDisable.java) |
| Rapid Cache Get | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheGet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheGet.java) |
| Rapid Cache List | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheList.java) |
| Rapid Cache Update | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheUpdate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/RapidCacheUpdate.java) |
| Rename Folder | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/RenameFolder.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/RenameFolder.java) |
| Activate Hmac Key | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/hmac/ActivateHmacKey.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/hmac/ActivateHmacKey.java) |
| Create Hmac Key | [source code](https://github.com/googleapis/google-cloud-java/blob/main/samples/snippets/src/main/java/com/example/storage/hmac/CreateHmacKey.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-java&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/hmac/CreateHmacKey.java) |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
* Copyright 2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.storage.control.v2;

// [START storage_control_create_rapid_cache]

import com.google.api.gax.longrunning.OperationFuture;
import com.google.storage.control.v2.BucketName;
import com.google.storage.control.v2.CreateRapidCacheMetadata;
import com.google.storage.control.v2.CreateRapidCacheRequest;
import com.google.storage.control.v2.RapidCache;
import com.google.storage.control.v2.RapidCacheName;
import com.google.storage.control.v2.StorageControlClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public final class RapidCacheCreate {

public static void rapidCacheCreate(String bucketName, String cacheId)
throws InterruptedException, ExecutionException, IOException {
// The ID of your GCS bucket
// String bucketName = "your-unique-bucket-name";

// The ID of the Rapid Cache. It must be the zone in which to create the cache, and the zone
// must be in the same region as the bucket.
// String cacheId = "us-central1-a";

try (StorageControlClient storageControl = StorageControlClient.create()) {

// Rapid Cache Ultra requires a regional bucket with hierarchical namespace enabled.
RapidCache rapidCache =
RapidCache.newBuilder()
.setName(RapidCacheName.format("_", bucketName, cacheId))
// The Rapid Cache ID is the zone in which the cache is created.
.setZone(cacheId)
.setCacheType("rapid-cache-ultra")
.build();

CreateRapidCacheRequest request =
CreateRapidCacheRequest.newBuilder()
// Set project to "_" to signify globally scoped bucket
.setParent(BucketName.format("_", bucketName))
.setRapidCache(rapidCache)
.build();

// Start a long-running operation (LRO).
OperationFuture<RapidCache, CreateRapidCacheMetadata> operation =
storageControl.createRapidCacheAsync(request);

// Await the LRO's completion.
RapidCache createdRapidCache = operation.get();
System.out.printf("Created Rapid Cache: %s%n", createdRapidCache.getName());
System.out.printf("Cache type: %s%n", createdRapidCache.getCacheType());
System.out.printf("State: %s%n", createdRapidCache.getState());
}
}
}
// [END storage_control_create_rapid_cache]
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright 2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.storage.control.v2;

// [START storage_control_disable_rapid_cache]

import com.google.api.gax.longrunning.OperationFuture;
import com.google.storage.control.v2.DisableRapidCacheMetadata;
import com.google.storage.control.v2.DisableRapidCacheRequest;
import com.google.storage.control.v2.RapidCache;
import com.google.storage.control.v2.RapidCacheName;
import com.google.storage.control.v2.StorageControlClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public final class RapidCacheDisable {

public static void rapidCacheDisable(String bucketName, String cacheId)
throws InterruptedException, ExecutionException, IOException {
// The ID of your GCS bucket
// String bucketName = "your-unique-bucket-name";

// The ID of the Rapid Cache
// String cacheId = "your-rapid-cache-id";

try (StorageControlClient storageControl = StorageControlClient.create()) {

// Set project to "_" to signify globally scoped bucket
String rapidCacheName = RapidCacheName.format("_", bucketName, cacheId);
DisableRapidCacheRequest request =
DisableRapidCacheRequest.newBuilder().setName(rapidCacheName).build();

// Start a long-running operation (LRO).
OperationFuture<RapidCache, DisableRapidCacheMetadata> operation =
storageControl.disableRapidCacheAsync(request);

// Await the LRO's completion. The cache moves to the "disabled" state within seconds, but
// the operation only completes once the cache has been fully removed, which can take longer
// than the client's default polling timeout. If the wait times out, get() throws a
// CancellationException, but the cache is already disabled; use RapidCacheGet to check its
// state.
RapidCache disabledRapidCache = operation.get();
System.out.printf("Disabled Rapid Cache: %s%n", disabledRapidCache.getName());
System.out.printf("State: %s%n", disabledRapidCache.getState());
}
}
}
// [END storage_control_disable_rapid_cache]
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* Copyright 2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.storage.control.v2;

// [START storage_control_get_rapid_cache]

import com.google.storage.control.v2.GetRapidCacheRequest;
import com.google.storage.control.v2.RapidCache;
import com.google.storage.control.v2.RapidCacheName;
import com.google.storage.control.v2.StorageControlClient;
import java.io.IOException;

public final class RapidCacheGet {

public static void rapidCacheGet(String bucketName, String cacheId) throws IOException {
// The ID of your GCS bucket
// String bucketName = "your-unique-bucket-name";

// The ID of the Rapid Cache
// String cacheId = "your-rapid-cache-id";

try (StorageControlClient storageControl = StorageControlClient.create()) {

GetRapidCacheRequest request =
GetRapidCacheRequest.newBuilder()
// Set project to "_" to signify globally scoped bucket
.setName(RapidCacheName.format("_", bucketName, cacheId))
.build();

RapidCache rapidCache = storageControl.getRapidCache(request);

System.out.printf("Got Rapid Cache: %s%n", rapidCache.getName());
System.out.printf("Zone: %s%n", rapidCache.getZone());
System.out.printf("Cache type: %s%n", rapidCache.getCacheType());
System.out.printf("State: %s%n", rapidCache.getState());
}
}
}
// [END storage_control_get_rapid_cache]
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Copyright 2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.storage.control.v2;

// [START storage_control_list_rapid_caches]

import com.google.storage.control.v2.BucketName;
import com.google.storage.control.v2.ListRapidCachesRequest;
import com.google.storage.control.v2.RapidCache;
import com.google.storage.control.v2.StorageControlClient;
import com.google.storage.control.v2.StorageControlClient.ListRapidCachesPagedResponse;
import java.io.IOException;

public final class RapidCacheList {

public static void rapidCacheList(String bucketName) throws IOException {
// The ID of your GCS bucket
// String bucketName = "your-unique-bucket-name";

try (StorageControlClient storageControl = StorageControlClient.create()) {

ListRapidCachesRequest request =
ListRapidCachesRequest.newBuilder()
// Set project to "_" to signify globally scoped bucket
.setParent(BucketName.format("_", bucketName))
.build();

// The paged response handles pagination automatically.
ListRapidCachesPagedResponse response = storageControl.listRapidCaches(request);
for (RapidCache rapidCache : response.iterateAll()) {
System.out.println(rapidCache.getName());
}

System.out.printf("Listed Rapid Caches in bucket %s%n", bucketName);
}
}
}
// [END storage_control_list_rapid_caches]
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* Copyright 2026 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.storage.control.v2;

// [START storage_control_update_rapid_cache]

import com.google.api.gax.longrunning.OperationFuture;
import com.google.protobuf.Duration;
import com.google.protobuf.FieldMask;
import com.google.storage.control.v2.RapidCache;
import com.google.storage.control.v2.RapidCacheName;
import com.google.storage.control.v2.StorageControlClient;
import com.google.storage.control.v2.UpdateRapidCacheMetadata;
import com.google.storage.control.v2.UpdateRapidCacheRequest;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public final class RapidCacheUpdate {

public static void rapidCacheUpdate(String bucketName, String cacheId, long ttlSeconds)
throws InterruptedException, ExecutionException, IOException {
// The ID of your GCS bucket
// String bucketName = "your-unique-bucket-name";

// The ID of the Rapid Cache
// String cacheId = "your-rapid-cache-id";

// The new time to live (TTL) for cache entries, in seconds. The TTL must be between 1 hour and
// 7 days.
// long ttlSeconds = 172800; // 2 days

try (StorageControlClient storageControl = StorageControlClient.create()) {

RapidCache pendingUpdate =
RapidCache.newBuilder()
// Set project to "_" to signify globally scoped bucket
.setName(RapidCacheName.format("_", bucketName, cacheId))
.setTtl(Duration.newBuilder().setSeconds(ttlSeconds).build())
.build();

UpdateRapidCacheRequest request =
UpdateRapidCacheRequest.newBuilder()
.setRapidCache(pendingUpdate)
// Only the fields listed in the update mask are changed.
.setUpdateMask(FieldMask.newBuilder().addPaths("ttl").build())
.build();

// Start a long-running operation (LRO).
OperationFuture<RapidCache, UpdateRapidCacheMetadata> operation =
storageControl.updateRapidCacheAsync(request);

// Await the LRO's completion.
RapidCache updatedRapidCache = operation.get();
System.out.printf("Updated Rapid Cache: %s%n", updatedRapidCache.getName());
System.out.printf("TTL: %d seconds%n", updatedRapidCache.getTtl().getSeconds());
}
}
}
// [END storage_control_update_rapid_cache]
Loading
Loading