/** Example of how to set a temporary hold for a blob */ public Blob setTemporaryHold(String bucketName, String blobName) throws StorageException { // [START storage_set_temporary_hold] // Instantiate a Google Cloud Storage client Storage storage = StorageOptions.getDefaultInstance().getService(); // The name of a bucket, e.g. "my-bucket" // String bucketName = "my-bucket"; // The name of a blob, e.g. "my-blob" // String blobName = "my-blob"; BlobId blobId = BlobId.of(bucketName, blobName); Blob blob = storage.update(BlobInfo.newBuilder(blobId).setTemporaryHold(true).build()); System.out.println("Temporary hold was set for " + blobName); // [END storage_set_temporary_hold] return blob; }
/** Example of how to release a temporary hold for a blob */ public Blob releaseTemporaryHold(String bucketName, String blobName) throws StorageException { // [START storage_release_temporary_hold] // Instantiate a Google Cloud Storage client Storage storage = StorageOptions.getDefaultInstance().getService(); // The name of a bucket, e.g. "my-bucket" // String bucketName = "my-bucket"; // The name of a blob, e.g. "my-blob" // String blobName = "my-blob"; BlobId blobId = BlobId.of(bucketName, blobName); Blob blob = storage.update(BlobInfo.newBuilder(blobId).setTemporaryHold(false).build()); System.out.println("Temporary hold was released for " + blobName); // [END storage_release_temporary_hold] return blob; } }
builder.setTemporaryHold(storageObject.getTemporaryHold());
builder.setTemporaryHold(storageObject.getTemporaryHold());
@Test public void testAttemptDeletionObjectTemporaryHold() { String blobName = "test-create-with-temporary-hold"; BlobInfo blobInfo = BlobInfo.newBuilder(BUCKET, blobName).setTemporaryHold(true).build(); Blob remoteBlob = storage.create(blobInfo); assertTrue(remoteBlob.getTemporaryHold()); try { remoteBlob.delete(); fail("Expected failure on delete from temporaryHold"); } catch (StorageException ex) { // expected } finally { remoteBlob.toBuilder().setEventBasedHold(false).build().update(); } }
@Test public void testEnableDisableTemporaryHold() { String blobName = "test-create-with-temporary-hold"; BlobInfo blobInfo = BlobInfo.newBuilder(BUCKET, blobName).setTemporaryHold(true).build(); Blob remoteBlob = storage.create(blobInfo); assertTrue(remoteBlob.getTemporaryHold()); remoteBlob = storage.get(remoteBlob.getBlobId(), Storage.BlobGetOption.fields(BlobField.TEMPORARY_HOLD)); assertTrue(remoteBlob.getTemporaryHold()); remoteBlob = remoteBlob.toBuilder().setTemporaryHold(false).build().update(); assertFalse(remoteBlob.getTemporaryHold()); }