public class ThrottledGoogleCloudStorage extends Object implements GoogleCloudStorage
| Modifier and Type | Class and Description |
|---|---|
static class |
ThrottledGoogleCloudStorage.StorageOperation
Operations that may be throttled.
|
MAX_RESULTS_UNLIMITED, PATH_DELIMITER| Constructor and Description |
|---|
ThrottledGoogleCloudStorage(double operationsPerSecond,
GoogleCloudStorage wrappedGcs,
EnumSet<ThrottledGoogleCloudStorage.StorageOperation> throttledOperations) |
ThrottledGoogleCloudStorage(GoogleCloudStorage wrappedGcs,
com.google.common.util.concurrent.RateLimiter rateLimiter)
Construct a ThrottledGoogleCloudStorage object that throttles all operations.
|
ThrottledGoogleCloudStorage(com.google.common.util.concurrent.RateLimiter rateLimiter,
GoogleCloudStorage wrappedGcs,
EnumSet<ThrottledGoogleCloudStorage.StorageOperation> throttledOperations) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Releases resources used by this instance.
|
void |
compose(String bucketName,
List<String> sources,
String destination,
String contentType)
Composes inputs into a single GCS object.
|
void |
copy(String srcBucketName,
List<String> srcObjectNames,
String dstBucketName,
List<String> dstObjectNames)
Copies metadata of the given objects.
|
WritableByteChannel |
create(StorageResourceId resourceId)
Creates and opens an object for writing.
|
WritableByteChannel |
create(StorageResourceId resourceId,
CreateObjectOptions options)
Creates and opens an object for writing.
|
void |
create(String bucketName)
Creates a bucket.
|
void |
create(String bucketName,
CreateBucketOptions options)
Creates a bucket.
|
void |
createEmptyObject(StorageResourceId resourceId)
Creates an empty object, useful for placeholders representing, for example, directories.
|
void |
createEmptyObject(StorageResourceId resourceId,
CreateObjectOptions options)
Creates an empty object, useful for placeholders representing, for example, directories.
|
void |
createEmptyObjects(List<StorageResourceId> resourceIds)
Creates a list of empty objects; see
GoogleCloudStorage.createEmptyObject(StorageResourceId) for
the single-item version of this method. |
void |
createEmptyObjects(List<StorageResourceId> resourceIds,
CreateObjectOptions options)
Creates a list of empty objects; see
GoogleCloudStorage.createEmptyObject(StorageResourceId) for
the single-item version of this method. |
void |
deleteBuckets(List<String> bucketNames)
Deletes a list of buckets.
|
void |
deleteObjects(List<StorageResourceId> fullObjectNames)
Deletes the given objects.
|
GoogleCloudStorageItemInfo |
getItemInfo(StorageResourceId resourceId)
Gets information about an object or a bucket.
|
List<GoogleCloudStorageItemInfo> |
getItemInfos(List<StorageResourceId> resourceIds)
Gets information about multiple objects and/or buckets.
|
GoogleCloudStorageOptions |
getOptions()
Retrieve the options that were used to create this GoogleCloudStorage.
|
List<GoogleCloudStorageItemInfo> |
listBucketInfo()
Gets a list of GoogleCloudStorageItemInfo for all buckets of this project.
|
List<String> |
listBucketNames()
Gets a list of names of buckets in this project.
|
List<GoogleCloudStorageItemInfo> |
listObjectInfo(String bucketName,
String objectNamePrefix,
String delimiter)
Same name-matching semantics as
listObjectNames except this method
retrieves the full GoogleCloudStorageFileInfo for each item as well. |
List<GoogleCloudStorageItemInfo> |
listObjectInfo(String bucketName,
String objectNamePrefix,
String delimiter,
long maxResults)
Same name-matching semantics as
listObjectNames except this method
retrieves the full GoogleCloudStorageFileInfo for each item as well. |
List<String> |
listObjectNames(String bucketName,
String objectNamePrefix,
String delimiter)
Gets names of objects contained in the given bucket and whose names begin with
the given prefix.
|
List<String> |
listObjectNames(String bucketName,
String objectNamePrefix,
String delimiter,
long maxResults)
Gets names of objects contained in the given bucket and whose names begin with
the given prefix.
|
SeekableByteChannel |
open(StorageResourceId resourceId)
Opens an object for reading.
|
List<GoogleCloudStorageItemInfo> |
updateItems(List<UpdatableItemInfo> itemInfoList)
Attempt to update metadata of the objects referenced within the passed itemInfo objects.
|
void |
waitForBucketEmpty(String bucketName)
Waits for the given bucket to be empty.
|
public ThrottledGoogleCloudStorage(GoogleCloudStorage wrappedGcs, com.google.common.util.concurrent.RateLimiter rateLimiter)
wrappedGcs - The GCS to wrap withrateLimiter - The RateLimiter to control operations permitted per timespan.public ThrottledGoogleCloudStorage(double operationsPerSecond,
GoogleCloudStorage wrappedGcs,
EnumSet<ThrottledGoogleCloudStorage.StorageOperation> throttledOperations)
operationsPerSecond - Operations per second to allow.wrappedGcs - The GoogleCloudStorage that we should delegate operations to.throttledOperations - The operations that should be throttled.public ThrottledGoogleCloudStorage(com.google.common.util.concurrent.RateLimiter rateLimiter,
GoogleCloudStorage wrappedGcs,
EnumSet<ThrottledGoogleCloudStorage.StorageOperation> throttledOperations)
rateLimiter - The RateLimiter to control operations permitted per timespan.wrappedGcs - The GoogleCloudStorage that we should delegate operations to.throttledOperations - The operations that should be throttled.public GoogleCloudStorageOptions getOptions()
GoogleCloudStoragegetOptions in interface GoogleCloudStoragepublic WritableByteChannel create(StorageResourceId resourceId) throws IOException
GoogleCloudStoragecreate in interface GoogleCloudStorageresourceId - identifies a StorageObjectIOException - on IO errorpublic WritableByteChannel create(StorageResourceId resourceId, CreateObjectOptions options) throws IOException
GoogleCloudStoragecreate in interface GoogleCloudStorageresourceId - identifies a StorageObjectoptions - Options to use when creating the objectIOException - on IO errorpublic void createEmptyObject(StorageResourceId resourceId) throws IOException
GoogleCloudStoragecreateEmptyObject in interface GoogleCloudStorageresourceId - identifies a StorageObjectIOException - on IO errorpublic void createEmptyObject(StorageResourceId resourceId, CreateObjectOptions options) throws IOException
GoogleCloudStoragecreateEmptyObject in interface GoogleCloudStorageresourceId - identifies a StorageObjectoptions - options to use when creating the objectIOException - on IO errorpublic void createEmptyObjects(List<StorageResourceId> resourceIds) throws IOException
GoogleCloudStorageGoogleCloudStorage.createEmptyObject(StorageResourceId) for
the single-item version of this method. Implementations may use different flow than the
single-item version for greater efficiency.createEmptyObjects in interface GoogleCloudStorageIOExceptionpublic void createEmptyObjects(List<StorageResourceId> resourceIds, CreateObjectOptions options) throws IOException
GoogleCloudStorageGoogleCloudStorage.createEmptyObject(StorageResourceId) for
the single-item version of this method. Implementations may use different flow than the
single-item version for greater efficiency.createEmptyObjects in interface GoogleCloudStorageIOExceptionpublic SeekableByteChannel open(StorageResourceId resourceId) throws IOException
GoogleCloudStorageopen in interface GoogleCloudStorageresourceId - identifies a StorageObjectFileNotFoundException - if the given object does not existIOException - if object exists but cannot be openedpublic void create(String bucketName) throws IOException
GoogleCloudStoragecreate in interface GoogleCloudStoragebucketName - name of the bucket to createIOException - on IO errorpublic void create(String bucketName, CreateBucketOptions options) throws IOException
GoogleCloudStoragecreate in interface GoogleCloudStoragebucketName - name of the bucket to createoptions - options to use when creating bucketIOException - on IO errorpublic void deleteBuckets(List<String> bucketNames) throws IOException
GoogleCloudStoragedeleteBuckets in interface GoogleCloudStoragebucketNames - name of the buckets to deleteFileNotFoundException - if the given bucket does not existIOException - on IO errorpublic void deleteObjects(List<StorageResourceId> fullObjectNames) throws IOException
GoogleCloudStoragedeleteObjects in interface GoogleCloudStoragefullObjectNames - names of objects to delete with their respective bucketNames.FileNotFoundException - if the given object does not existIOException - if object exists but cannot be deletedpublic void copy(String srcBucketName, List<String> srcObjectNames, String dstBucketName, List<String> dstObjectNames) throws IOException
GoogleCloudStoragecopy in interface GoogleCloudStoragesrcBucketName - name of the bucket containing the objects to copysrcObjectNames - names of the objects to copydstBucketName - name of the bucket to copy todstObjectNames - names of the objects after copyFileNotFoundException - if the source object or the destination bucket does not existIOException - in all other error casespublic List<String> listBucketNames() throws IOException
GoogleCloudStoragelistBucketNames in interface GoogleCloudStorageIOExceptionpublic List<GoogleCloudStorageItemInfo> listBucketInfo() throws IOException
GoogleCloudStoragelistBucketInfo in interface GoogleCloudStorageIOExceptionpublic List<String> listObjectNames(String bucketName, String objectNamePrefix, String delimiter) throws IOException
GoogleCloudStorageNote: Although GCS does not implement a file system, it treats objects that contain a delimiter as different from other objects when listing objects. This will be clearer with an example.
Consider a bucket with objects: o1, d1/, d1/o1, d1/o2 With prefix == null and delimiter == /, we get: d1/, o1 With prefix == null and delimiter == null, we get: o1, d1/, d1/o1, d1/o2
Thus when delimiter is null, the entire key name is considered an opaque string, otherwise only the part up to the first delimiter is considered.
The default implementation of this method should turn around and call
the version that takes maxResults so that inheriting classes
need only implement that version.
listObjectNames in interface GoogleCloudStoragebucketName - bucket nameobjectNamePrefix - object name prefix or null if all objects in the bucket are desireddelimiter - delimiter to use (typically "/"), otherwise nullIOException - on IO errorpublic List<String> listObjectNames(String bucketName, String objectNamePrefix, String delimiter, long maxResults) throws IOException
GoogleCloudStorageNote: Although GCS does not implement a file system, it treats objects that contain a delimiter as different from other objects when listing objects. This will be clearer with an example.
Consider a bucket with objects: o1, d1/, d1/o1, d1/o2 With prefix == null and delimiter == /, we get: d1/, o1 With prefix == null and delimiter == null, we get: o1, d1/, d1/o1, d1/o2
Thus when delimiter is null, the entire key name is considered an opaque string, otherwise only the part up to the first delimiter is considered.
listObjectNames in interface GoogleCloudStoragebucketName - bucket nameobjectNamePrefix - object name prefix or null if all objects in the bucket are desireddelimiter - delimiter to use (typically "/"), otherwise nullmaxResults - maximum number of results to return,
unlimited if negative or zeroIOException - on IO errorpublic List<GoogleCloudStorageItemInfo> listObjectInfo(String bucketName, String objectNamePrefix, String delimiter) throws IOException
GoogleCloudStoragelistObjectNames except this method
retrieves the full GoogleCloudStorageFileInfo for each item as well.
Generally the info is already available from the same "list()" calls, so the only additional cost is dispatching an extra batch request to retrieve object metadata for all listed *directories*, since these are originally listed as String prefixes without attached metadata.
The default implementation of this method should turn around and call
the version that takes maxResults so that inheriting classes
need only implement that version.
listObjectInfo in interface GoogleCloudStoragebucketName - bucket nameobjectNamePrefix - object name prefix or null if all objects in the bucket are desireddelimiter - delimiter to use (typically "/"), otherwise nullIOException - on IO errorpublic List<GoogleCloudStorageItemInfo> listObjectInfo(String bucketName, String objectNamePrefix, String delimiter, long maxResults) throws IOException
GoogleCloudStoragelistObjectNames except this method
retrieves the full GoogleCloudStorageFileInfo for each item as well.
Generally the info is already available from the same "list()" calls, so the only additional cost is dispatching an extra batch request to retrieve object metadata for all listed *directories*, since these are originally listed as String prefixes without attached metadata.
listObjectInfo in interface GoogleCloudStoragebucketName - bucket nameobjectNamePrefix - object name prefix or null if all objects in the bucket are desireddelimiter - delimiter to use (typically "/"), otherwise nullmaxResults - maximum number of results to return,
unlimited if negative or zeroIOException - on IO errorpublic GoogleCloudStorageItemInfo getItemInfo(StorageResourceId resourceId) throws IOException
GoogleCloudStoragegetItemInfo in interface GoogleCloudStorageresourceId - identifies either root, a Bucket, or a StorageObjectIOException - on IO errorpublic List<GoogleCloudStorageItemInfo> getItemInfos(List<StorageResourceId> resourceIds) throws IOException
GoogleCloudStoragegetItemInfos in interface GoogleCloudStorageresourceIds - names of the GCS StorageObjects or Buckets for which to retrieve info.IOException - on IO errorpublic List<GoogleCloudStorageItemInfo> updateItems(List<UpdatableItemInfo> itemInfoList) throws IOException
GoogleCloudStorageupdateItems in interface GoogleCloudStorageIOException - on IO errorpublic void close()
GoogleCloudStorageclose in interface GoogleCloudStoragepublic void waitForBucketEmpty(String bucketName) throws IOException
GoogleCloudStoragewaitForBucketEmpty in interface GoogleCloudStorageIOExceptionpublic void compose(String bucketName, List<String> sources, String destination, String contentType) throws IOException
GoogleCloudStoragecompose in interface GoogleCloudStoragebucketName - name of the bucket containing the sources and the destinationsources - names of the objects to be composeddestination - name of the resulting objectcontentType - content-type of composed objectIOException - if the Compose operation was unsuccessfulCopyright © 2016. All rights reserved.