Refine search
/** Example of listing blobs in a provided directory. */ // [TARGET list(String, BlobListOption...)] // [VARIABLE "my_unique_bucket"] // [VARIABLE "my_directory/"] public Page<Blob> listBlobsWithDirectoryAndPrefix(String bucketName, String directory) { // [START listBlobsWithDirectoryAndPrefix] Page<Blob> blobs = storage.list( bucketName, BlobListOption.currentDirectory(), BlobListOption.prefix(directory)); for (Blob blob : blobs.iterateAll()) { // do something with the blob } // [END listBlobsWithDirectoryAndPrefix] return blobs; }
Page<Blob> listedBlobs; if (Strings.isNullOrEmpty(userProject)) { listedBlobs = storage.list(bucket, BlobListOption.versions(true)); } else { listedBlobs = storage.list( bucket, BlobListOption.versions(true), BlobListOption.userProject(userProject)); List<Boolean> results = storage.delete(ids); if (!Strings.isNullOrEmpty(userProject)) { for (int i = 0; i < results.size(); i++) {
String landsatPrefix = "LC08/PRE/044/034/LC80440342016259LGN00/"; String landsatBlob = landsatPrefix + "LC80440342016259LGN00_MTL.txt"; byte[] bytes = unauthorizedStorage.readAllBytes(landsatBucket, landsatBlob); Iterator<Blob> blobIterator = unauthorizedStorage .list(landsatBucket, Storage.BlobListOption.prefix(landsatPrefix)) .iterateAll() .iterator(); assertThat(storage.create(sourceBlob)).isNotNull(); assertThat(storage.readAllBytes(BUCKET, sourceBlobName)).isNotNull(); try {
BlobInfo blob1 = BlobInfo.newBuilder(BUCKET, blobNames[0]).setContentType(CONTENT_TYPE).build(); BlobInfo blob2 = BlobInfo.newBuilder(BUCKET, blobNames[1]).setContentType(CONTENT_TYPE).build(); Blob remoteBlob1 = storage.create(blob1); Blob remoteBlob2 = storage.create(blob2); assertNotNull(remoteBlob1); assertNotNull(remoteBlob2); Page<Blob> page = storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), Storage.BlobListOption.fields()); storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), Storage.BlobListOption.fields());
.setContentType(CONTENT_TYPE) .build(); assertNotNull(storage.create(blob1)); Bucket remoteBucket = storage.get(BUCKET, Storage.BucketGetOption.fields(BucketField.ID)); assertNull(remoteBucket.requesterPays()); remoteBucket = remoteBucket.toBuilder().setRequesterPays(true).build(); Bucket updatedBucket = storage.update(remoteBucket); assertTrue(updatedBucket.requesterPays()); try { storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), Storage.BlobListOption.fields(), Storage.BlobListOption.userProject("fakeBillingProjectId")); fail("Expected bad user project error."); } catch (StorageException e) { storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), Storage.BlobListOption.fields(), Storage.BlobListOption.userProject(projectId)); List<Blob> blobs = Lists.newArrayList(page.iterateAll());
@Override public void run() { Page<Bucket> buckets = storage.list(Storage.BucketListOption.prefix(BUCKET_NAME_PREFIX)); for (Bucket bucket : buckets.iterateAll()) { if (bucket.getCreateTime() < olderThan) { try { for (Blob blob : bucket .list( BlobListOption.fields( Storage.BlobField.EVENT_BASED_HOLD, Storage.BlobField.TEMPORARY_HOLD)) .iterateAll()) { if (blob.getEventBasedHold() == true || blob.getTemporaryHold() == true) { storage.update( blob.toBuilder() .setTemporaryHold(false) .setEventBasedHold(false) .build()); } } forceDelete(storage, bucket.getName()); } catch (Exception e) { // Ignore the exception, maybe the bucket is being deleted by someone else. } } } } };
Lists.newArrayList( bucket .list(BlobListOption.currentDirectory(), BlobListOption.prefix(prefix)) .iterateAll()); } catch (StorageException se) {
BlobInfo blob2 = BlobInfo.newBuilder(BUCKET, blobNames[1]).setContentType(CONTENT_TYPE).build(); Blob remoteBlob1 = storage.create(blob1, Storage.BlobTargetOption.kmsKeyName(kmsKeyOneResourcePath)); Blob remoteBlob2 = storage.create(blob2, Storage.BlobTargetOption.kmsKeyName(kmsKeyOneResourcePath)); assertNotNull(remoteBlob1); assertNotNull(remoteBlob2); Page<Blob> page = storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-selected-field-kms-key-name-blob"), Storage.BlobListOption.fields(BlobField.KMS_KEY_NAME)); storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-selected-field-kms-key-name-blob"), Storage.BlobListOption.fields(BlobField.KMS_KEY_NAME));
@Override public void run() { Page<Bucket> buckets = storage.list(Storage.BucketListOption.prefix(BUCKET_NAME_PREFIX)); for (Bucket bucket : buckets.iterateAll()) { if (bucket.getCreateTime() < olderThan) { try { for (Blob blob : bucket .list( BlobListOption.fields( Storage.BlobField.EVENT_BASED_HOLD, Storage.BlobField.TEMPORARY_HOLD)) .iterateAll()) { if (blob.getEventBasedHold() == true || blob.getTemporaryHold() == true) { storage.update( blob.toBuilder() .setTemporaryHold(false) .setEventBasedHold(false) .build()); } } forceDelete(storage, bucket.getName()); } catch (Exception e) { // Ignore the exception, maybe the bucket is being deleted by someone else. } } } } };
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"}; BlobInfo blob2 = BlobInfo.newBuilder(bucket, blobNames[1]).setContentType(CONTENT_TYPE).build(); Blob remoteBlob1 = storage.create(blob1); Blob remoteBlob2 = storage.create(blob2); Blob remoteBlob3 = storage.create(blob2); assertNotNull(remoteBlob1); storage.list( bucketName, Storage.BlobListOption.prefix("test-list-blobs-versioned-blob"), Storage.BlobListOption.versions(true)); storage.list( bucketName, Storage.BlobListOption.prefix("test-list-blobs-versioned-blob"), Storage.BlobListOption.versions(true));
@Test public void testForceDelete() throws InterruptedException, ExecutionException { Storage storageMock = EasyMock.createMock(Storage.class); EasyMock.expect(blob1.getBlobId()).andReturn(BLOB_ID1); EasyMock.expect(blob2.getBlobId()).andReturn(BLOB_ID2); ArrayList<BlobId> ids = new ArrayList<>(); ids.add(BLOB_ID1); ids.add(BLOB_ID2); EasyMock.expect(storageMock.delete(ids)).andReturn(Collections.nCopies(2, true)); EasyMock.expect(storageMock.list(BUCKET_NAME, BlobListOption.versions(true))) .andReturn(blobPage); EasyMock.expect(storageMock.delete(BUCKET_NAME)).andReturn(true); EasyMock.replay(storageMock, blob1, blob2); assertTrue(RemoteStorageHelper.forceDelete(storageMock, BUCKET_NAME, 5, TimeUnit.SECONDS)); EasyMock.verify(storageMock, blob1, blob2); }
@Test public void testListBlobsCurrentDirectory() { String cursor = "cursor"; Map<StorageRpc.Option, ?> options = ImmutableMap.of(StorageRpc.Option.DELIMITER, "/"); ImmutableList<BlobInfo> blobInfoList = ImmutableList.of(BLOB_INFO1, BLOB_INFO2); Tuple<String, Iterable<com.google.api.services.storage.model.StorageObject>> result = Tuple.of(cursor, Iterables.transform(blobInfoList, BlobInfo.INFO_TO_PB_FUNCTION)); EasyMock.expect(storageRpcMock.list(BUCKET_NAME1, options)).andReturn(result); EasyMock.replay(storageRpcMock); initializeService(); ImmutableList<Blob> blobList = ImmutableList.of(expectedBlob1, expectedBlob2); Page<Blob> page = storage.list(BUCKET_NAME1, Storage.BlobListOption.currentDirectory()); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(blobList.toArray(), Iterables.toArray(page.getValues(), Blob.class)); }
.setMetadata(metadata) .build(); Blob remoteBlob1 = storage.create(blob1); Blob remoteBlob2 = storage.create(blob2); assertNotNull(remoteBlob1); assertNotNull(remoteBlob2); Page<Blob> page = storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-selected-fields-blob"), Storage.BlobListOption.fields(BlobField.METADATA)); storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-selected-fields-blob"), Storage.BlobListOption.fields(BlobField.METADATA));
@Test public void testForceDeleteNoTimeout() { Storage storageMock = EasyMock.createMock(Storage.class); EasyMock.expect(blob1.getBlobId()).andReturn(BLOB_ID1); EasyMock.expect(blob2.getBlobId()).andReturn(BLOB_ID2); ArrayList<BlobId> ids = new ArrayList<>(); ids.add(BLOB_ID1); ids.add(BLOB_ID2); EasyMock.expect(storageMock.delete(ids)).andReturn(Collections.nCopies(2, true)).anyTimes(); EasyMock.expect(storageMock.list(BUCKET_NAME, BlobListOption.versions(true))) .andReturn(blobPage); EasyMock.expect(storageMock.delete(BUCKET_NAME)).andReturn(true); EasyMock.replay(storageMock, blob1, blob2); RemoteStorageHelper.forceDelete(storageMock, BUCKET_NAME); EasyMock.verify(storageMock); }
BlobInfo blob1 = BlobInfo.newBuilder(BUCKET, blobNames[0]).setContentType(CONTENT_TYPE).build(); BlobInfo blob2 = BlobInfo.newBuilder(BUCKET, blobNames[1]).setContentType(CONTENT_TYPE).build(); Blob remoteBlob1 = storage.create(blob1, BLOB_BYTE_CONTENT); Blob remoteBlob2 = storage.create(blob2, BLOB_BYTE_CONTENT); assertNotNull(remoteBlob1); assertNotNull(remoteBlob2); Page<Blob> page = storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-current-directory/"), Storage.BlobListOption.currentDirectory()); storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-current-directory/"), Storage.BlobListOption.currentDirectory());
@Test public void testForceDeleteFail() throws InterruptedException, ExecutionException { Storage storageMock = EasyMock.createMock(Storage.class); EasyMock.expect(blob1.getBlobId()).andReturn(BLOB_ID1); EasyMock.expect(blob2.getBlobId()).andReturn(BLOB_ID2); ArrayList<BlobId> ids = new ArrayList<>(); ids.add(BLOB_ID1); ids.add(BLOB_ID2); EasyMock.expect(storageMock.delete(ids)).andReturn(Collections.nCopies(2, true)).anyTimes(); EasyMock.expect(storageMock.list(BUCKET_NAME, BlobListOption.versions(true))) .andReturn(blobPage); EasyMock.expect(storageMock.delete(BUCKET_NAME)).andThrow(FATAL_EXCEPTION); EasyMock.replay(storageMock, blob1, blob2); thrown.expect(ExecutionException.class); try { RemoteStorageHelper.forceDelete(storageMock, BUCKET_NAME, 5, TimeUnit.SECONDS); } finally { EasyMock.verify(storageMock); } }
if (isNullOrEmpty(userProject)) { dirList = storage.list( cloudPath.bucket(), Storage.BlobListOption.prefix(prefix), Storage.BlobListOption.currentDirectory(), Storage.BlobListOption.fields()); } else { dirList = storage.list( cloudPath.bucket(), Storage.BlobListOption.prefix(prefix), Storage.BlobListOption.currentDirectory(), Storage.BlobListOption.fields(), Storage.BlobListOption.userProject(userProject));