String bucketName = RemoteStorageHelper.generateBucketName(); Bucket bucket = storage.create(BucketInfo.newBuilder(bucketName).setVersioningEnabled(true).build()); try { String[] blobNames = {"test-list-blobs-versioned-blob1", "test-list-blobs-versioned-blob2"};
storage.create( BucketInfo.newBuilder(bucketName) .setDefaultKmsKeyName(kmsKeyOneResourcePath) .setLocation(KMS_KEY_RING_LOCATION) .build()); assertNotNull(remoteBucket); assertTrue(remoteBucket.getDefaultKmsKeyName().startsWith(kmsKeyOneResourcePath));
/** Example of disabling Requester pays on a bucket. */ public Bucket disableRequesterPays(String bucketName) { // [START disable_requester_pays] // Instantiate a Google Cloud Storage client Storage storage = StorageOptions.getDefaultInstance().getService(); // The name of the bucket to disable requester-paying for, e.g. "my-bucket" // String bucketName = "my-bucket" BucketInfo bucketInfo = BucketInfo.newBuilder(bucketName).setRequesterPays(false).build(); // Update the bucket, throws StorageException on failure Bucket bucket = storage.update(bucketInfo); System.out.println("Requester pays status for " + bucketName + ": " + bucket.requesterPays()); // [END disable_requester_pays] return bucket; }
static BucketInfo fromPb(com.google.api.services.storage.model.Bucket bucketPb) { Builder builder = new BuilderImpl(bucketPb.getName()); if (bucketPb.getId() != null) { builder.setGeneratedId(bucketPb.getId()); builder.setEtag(bucketPb.getEtag()); builder.setMetageneration(bucketPb.getMetageneration()); builder.setSelfLink(bucketPb.getSelfLink()); builder.setCreateTime(bucketPb.getTimeCreated().getValue()); builder.setLocation(bucketPb.getLocation()); builder.setStorageClass(StorageClass.valueOf(bucketPb.getStorageClass())); builder.setCors(transform(bucketPb.getCors(), Cors.FROM_PB_FUNCTION)); builder.setAcl( transform( bucketPb.getAcl(), builder.setDefaultAcl( transform( bucketPb.getDefaultObjectAcl(), builder.setOwner(Entity.fromPb(bucketPb.getOwner().getEntity())); builder.setVersioningEnabled(bucketPb.getVersioning().getEnabled());
/** Creates a {@code BucketInfo} object for the provided bucket name. */ public static BucketInfo of(String name) { return newBuilder(name).build(); }
public Bucket createBucket(String bucketName) { Bucket bucket = storage.create( BucketInfo.newBuilder(bucketName) .setLocation("europe-west1") .build()); return bucket; }
/** * Creates the bucket that this resource references in Google Cloud Storage. * @return the {@link Bucket} object for the bucket * @throws StorageException if any errors during bucket creation arise, * such as if the bucket already exists */ public Bucket createBucket() { return this.storage.create(BucketInfo.newBuilder(this.bucketName).build()); }
/** * Creates the bucket that this resource references in Google Cloud Storage. * @return the {@link Bucket} object for the bucket * @throws StorageException if any errors during bucket creation arise, * such as if the bucket already exists */ public Bucket createBucket() { return this.storage.create(BucketInfo.newBuilder(this.bucketName).build()); }
static BucketInfo fromPb(com.google.api.services.storage.model.Bucket bucketPb) { Builder builder = new BuilderImpl(bucketPb.getName()); if (bucketPb.getId() != null) { builder.setGeneratedId(bucketPb.getId()); builder.setEtag(bucketPb.getEtag()); builder.setMetageneration(bucketPb.getMetageneration()); builder.setSelfLink(bucketPb.getSelfLink()); builder.setCreateTime(bucketPb.getTimeCreated().getValue()); builder.setLocation(bucketPb.getLocation()); builder.setStorageClass(StorageClass.valueOf(bucketPb.getStorageClass())); builder.setCors(transform(bucketPb.getCors(), Cors.FROM_PB_FUNCTION)); builder.setAcl( transform( bucketPb.getAcl(), builder.setDefaultAcl( transform( bucketPb.getDefaultObjectAcl(), builder.setOwner(Entity.fromPb(bucketPb.getOwner().getEntity())); builder.setVersioningEnabled(bucketPb.getVersioning().getEnabled());
bucketInfo = BucketInfo.newBuilder(bucketName) .setRetentionPeriod(RETENTION_PERIOD) .setRequesterPays(true) .build(); } else { bucketInfo = BucketInfo.newBuilder(bucketName).setRetentionPeriod(RETENTION_PERIOD).build();
storage.create( BucketInfo.newBuilder(lifecycleTestBucketName) .setLocation("us") .setLifecycleRules( ImmutableList.of( new LifecycleRule( .setMatchesStorageClass(ImmutableList.of(StorageClass.COLDLINE)) .build()))) .build()); Bucket remoteBucket = storage.get(lifecycleTestBucketName, Storage.BucketGetOption.fields(BucketField.LIFECYCLE));
@Test public void testEnableDisableBucketDefaultEventBasedHold() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create(BucketInfo.newBuilder(bucketName).setDefaultEventBasedHold(true).build()); try { assertTrue(remoteBucket.getDefaultEventBasedHold()); remoteBucket = storage.get( bucketName, Storage.BucketGetOption.fields(BucketField.DEFAULT_EVENT_BASED_HOLD)); assertTrue(remoteBucket.getDefaultEventBasedHold()); String blobName = "test-create-with-event-based-hold"; BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build(); Blob remoteBlob = storage.create(blobInfo); assertTrue(remoteBlob.getEventBasedHold()); remoteBlob = storage.get( blobInfo.getBlobId(), Storage.BlobGetOption.fields(BlobField.EVENT_BASED_HOLD)); assertTrue(remoteBlob.getEventBasedHold()); remoteBlob = remoteBlob.toBuilder().setEventBasedHold(false).build().update(); assertFalse(remoteBlob.getEventBasedHold()); remoteBucket = remoteBucket.toBuilder().setDefaultEventBasedHold(false).build().update(); assertFalse(remoteBucket.getDefaultEventBasedHold()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testRetentionPolicyNoLock() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName).setRetentionPeriod(RETENTION_PERIOD).build()); try { assertEquals(RETENTION_PERIOD, remoteBucket.getRetentionPeriod()); assertNotNull(remoteBucket.getRetentionEffectiveTime()); assertNull(remoteBucket.retentionPolicyIsLocked()); remoteBucket = storage.get(bucketName, Storage.BucketGetOption.fields(BucketField.RETENTION_POLICY)); assertEquals(RETENTION_PERIOD, remoteBucket.getRetentionPeriod()); assertNotNull(remoteBucket.getRetentionEffectiveTime()); assertNull(remoteBucket.retentionPolicyIsLocked()); String blobName = "test-create-with-retention-policy-hold"; BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build(); Blob remoteBlob = storage.create(blobInfo); assertNotNull(remoteBlob.getRetentionExpirationTime()); remoteBucket = remoteBucket.toBuilder().setRetentionPeriod(null).build().update(); assertNull(remoteBucket.getRetentionPeriod()); remoteBucket = remoteBucket.toBuilder().setRetentionPeriod(null).build().update(); assertNull(remoteBucket.getRetentionPeriod()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testCreateBlobWithDefaultKmsKeyName() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket bucket = storage.create( BucketInfo.newBuilder(bucketName) .setDefaultKmsKeyName(kmsKeyOneResourcePath) .setLocation(KMS_KEY_RING_LOCATION) .build()); assertEquals(bucket.getDefaultKmsKeyName(), kmsKeyOneResourcePath); try { String blobName = "test-create-with-default-kms-key-name-blob"; BlobInfo blob = BlobInfo.newBuilder(bucket, blobName).build(); Blob remoteBlob = storage.create(blob, BLOB_BYTE_CONTENT); assertNotNull(remoteBlob); assertEquals(blob.getBucket(), remoteBlob.getBucket()); assertEquals(blob.getName(), remoteBlob.getName()); assertNotNull(remoteBlob.getKmsKeyName()); assertTrue(remoteBlob.getKmsKeyName().startsWith(kmsKeyOneResourcePath)); byte[] readBytes = storage.readAllBytes(bucketName, blobName); assertArrayEquals(BLOB_BYTE_CONTENT, readBytes); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testAttemptObjectDeleteWithRetentionPolicy() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName).setRetentionPeriod(RETENTION_PERIOD).build()); assertEquals(RETENTION_PERIOD, remoteBucket.getRetentionPeriod()); String blobName = "test-create-with-retention-policy"; BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build(); Blob remoteBlob = storage.create(blobInfo); assertNotNull(remoteBlob.getRetentionExpirationTime()); try { remoteBlob.delete(); fail("Expected failure on delete from retentionPolicy"); } catch (StorageException ex) { // expected } finally { Thread.sleep(RETENTION_PERIOD_IN_MILLISECONDS); RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
/** Example of setting a retention policy on a bucket */ public Bucket setRetentionPolicy(String bucketName, Long retentionPeriod) throws StorageException { // [START storage_set_retention_policy] // 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 retention period for objects in bucket // Long retentionPeriod = 3600L; // 1 hour in seconds Bucket bucketWithRetentionPolicy = storage.update( BucketInfo.newBuilder(bucketName).setRetentionPeriod(retentionPeriod).build()); System.out.println( "Retention period for " + bucketName + " is now " + bucketWithRetentionPolicy.getRetentionPeriod()); // [END storage_set_retention_policy] return bucketWithRetentionPolicy; }
@Test public void testUpdateBucketDefaultKmsKeyName() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName) .setDefaultKmsKeyName(kmsKeyOneResourcePath) .setLocation(KMS_KEY_RING_LOCATION) .build()); try { assertEquals(kmsKeyOneResourcePath, remoteBucket.getDefaultKmsKeyName()); Bucket updatedBucket = remoteBucket.toBuilder().setDefaultKmsKeyName(kmsKeyTwoResourcePath).build().update(); assertEquals(kmsKeyTwoResourcePath, updatedBucket.getDefaultKmsKeyName()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
/** Example of setting a default KMS key on a bucket. */ public Bucket setDefaultKmsKey(String bucketName, String kmsKeyName) throws StorageException { // [START storage_set_bucket_default_kms_key] // Instantiate a Google Cloud Storage client Storage storage = StorageOptions.getDefaultInstance().getService(); // The name of the existing bucket to set a default KMS key for, e.g. "my-bucket" // String bucketName = "my-bucket" // The name of the KMS-key to use as a default // Key names are provided in the following format: // 'projects/<PROJECT>/locations/<LOCATION>/keyRings/<RING_NAME>/cryptoKeys/<KEY_NAME>' // String kmsKeyName = "" BucketInfo bucketInfo = BucketInfo.newBuilder(bucketName).setDefaultKmsKeyName(kmsKeyName).build(); Bucket bucket = storage.update(bucketInfo); System.out.println("Default KMS Key Name: " + bucket.getDefaultKmsKeyName()); // [END storage_set_bucket_default_kms_key] return bucket; }
@BeforeClass public static void beforeClass() throws IOException { // loads the credentials from local disk as par README RemoteStorageHelper gcsHelper = RemoteStorageHelper.create(); storageOptions = gcsHelper.getOptions(); project = storageOptions.getProjectId(); storage = storageOptions.getService(); // create and populate test bucket storage.create(BucketInfo.of(BUCKET)); fillFile(storage, BUCKET, SML_FILE, SML_SIZE); fillFile(storage, BUCKET, BIG_FILE, BIG_SIZE); BucketInfo requesterPaysBucket = BucketInfo.newBuilder(REQUESTER_PAYS_BUCKET).setRequesterPays(true).build(); storage.create(requesterPaysBucket); fillRequesterPaysFile(storage, SML_FILE, SML_SIZE); }
/** Example of creating a bucket with storage class and location. */ // [TARGET create(BucketInfo, BucketTargetOption...)] // [VARIABLE "my_unique_bucket"] public Bucket createBucketWithStorageClassAndLocation(String bucketName) { // [START createBucketWithStorageClassAndLocation] Bucket bucket = storage.create( BucketInfo.newBuilder(bucketName) // See here for possible values: http://g.co/cloud/storage/docs/storage-classes .setStorageClass(StorageClass.COLDLINE) // Possible values: http://g.co/cloud/storage/docs/bucket-locations#location-mr .setLocation("asia") .build()); // [END createBucketWithStorageClassAndLocation] return bucket; }