public class BlobInfo implements Serializable
Information about an object in Google Cloud Storage. A BlobInfo
object includes the
BlobId
instance and the set of properties, such as the blob's access control
configuration, user provided metadata, the CRC32C checksum, etc. Instances of this class are used
to create a new object in Google Cloud Storage or update the properties of an existing object. To
deal with existing Storage objects the API includes the Blob class which extends
BlobInfo
and declares methods to perform operations on the object. Neither BlobInfo
nor
Blob
instances keep the object content, just the object properties.
Example of usage BlobInfo
to create an object in Google Cloud Storage:
BlobId blobId = BlobId.of(bucketName, blobName);
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
Blob blob = storage.create(blobInfo, "Hello, world".getBytes(StandardCharsets.UTF_8));
See Also: Concepts and Terminology
Implements
SerializableStatic Methods
newBuilder(BlobId blobId)
public static BlobInfo.Builder newBuilder(BlobId blobId)
Returns a BlobInfo
builder where blob identity is set using the provided value.
Name | Description |
blobId |
BlobId |
Type | Description |
BlobInfo.Builder |
newBuilder(BucketInfo bucketInfo, String name)
public static BlobInfo.Builder newBuilder(BucketInfo bucketInfo, String name)
Returns a BlobInfo
builder where blob identity is set using the provided values.
Name | Description |
bucketInfo |
BucketInfo |
name |
String |
Type | Description |
BlobInfo.Builder |
newBuilder(BucketInfo bucketInfo, String name, Long generation)
public static BlobInfo.Builder newBuilder(BucketInfo bucketInfo, String name, Long generation)
Returns a BlobInfo
builder where blob identity is set using the provided values.
Name | Description |
bucketInfo |
BucketInfo |
name |
String |
generation |
Long |
Type | Description |
BlobInfo.Builder |
newBuilder(String bucket, String name)
public static BlobInfo.Builder newBuilder(String bucket, String name)
Returns a BlobInfo
builder where blob identity is set using the provided values.
Name | Description |
bucket |
String |
name |
String |
Type | Description |
BlobInfo.Builder |
newBuilder(String bucket, String name, Long generation)
public static BlobInfo.Builder newBuilder(String bucket, String name, Long generation)
Returns a BlobInfo
builder where blob identity is set using the provided values.
Name | Description |
bucket |
String |
name |
String |
generation |
Long |
Type | Description |
BlobInfo.Builder |
Methods
equals(Object o)
public boolean equals(Object o)
Name | Description |
o |
Object |
Type | Description |
boolean |
getAcl()
public List<Acl> getAcl()
Returns the blob's access control configuration. See Also: About Access Control Lists
Type | Description |
List<Acl> |
getBlobId()
public BlobId getBlobId()
Returns the blob's identity.
Type | Description |
BlobId |
getBucket()
public String getBucket()
Returns the name of the containing bucket.
Type | Description |
String |
getCacheControl()
public String getCacheControl()
Returns the blob's data cache control. See Also: Cache-Control
Type | Description |
String |
getComponentCount()
public Integer getComponentCount()
Returns the number of components that make up this blob. Components are accumulated through the Storage#compose(Storage.ComposeRequest) operation and are limited to a count of 1024, counting 1 for each non-composite component blob and componentCount for each composite component blob. This value is set only for composite blobs. See Also: Component Count Property
Type | Description |
Integer |
getContentDisposition()
public String getContentDisposition()
Returns the blob's data content disposition. See Also: Content-Disposition
Type | Description |
String |
getContentEncoding()
public String getContentEncoding()
Returns the blob's data content encoding. See Also: Content-Encoding
Type | Description |
String |
getContentLanguage()
public String getContentLanguage()
Returns the blob's data content language. See Also: Content-Language
Type | Description |
String |
getContentType()
public String getContentType()
Returns the blob's data content type. See Also: Content-Type
Type | Description |
String |
getCrc32c()
public String getCrc32c()
Returns the CRC32C checksum of blob's data as described in RFC 4960, Appendix B; encoded in base64 in big-endian order. See Also: Hashes and ETags: Best Practices
Type | Description |
String |
getCrc32cToHexString()
public String getCrc32cToHexString()
Returns the CRC32C checksum of blob's data as described in RFC 4960, Appendix B; decoded to string. See Also: Hashes and ETags: Best Practices
Type | Description |
String |
getCreateTime() (deprecated)
public Long getCreateTime()
Deprecated. Use #getCreateTimeOffsetDateTime()
Returns the creation time of the blob expressed as the number of milliseconds since the Unix epoch.
Type | Description |
Long |
getCreateTimeOffsetDateTime()
public OffsetDateTime getCreateTimeOffsetDateTime()
Returns the creation time of the blob.
Type | Description |
OffsetDateTime |
getCustomTime() (deprecated)
public Long getCustomTime()
Deprecated. Use #getCustomTimeOffsetDateTime()
Returns the custom time specified by the user for an object.
Type | Description |
Long |
getCustomTimeOffsetDateTime()
public OffsetDateTime getCustomTimeOffsetDateTime()
Returns the custom time specified by the user for an object.
Type | Description |
OffsetDateTime |
getCustomerEncryption()
public BlobInfo.CustomerEncryption getCustomerEncryption()
Returns information on the customer-supplied encryption key, if the blob is encrypted using such a key.
Type | Description |
BlobInfo.CustomerEncryption |
getDeleteTime() (deprecated)
public Long getDeleteTime()
Deprecated. Use #getDeleteTimeOffsetDateTime()
Returns the deletion time of the blob expressed as the number of milliseconds since the Unix epoch.
Type | Description |
Long |
getDeleteTimeOffsetDateTime()
public OffsetDateTime getDeleteTimeOffsetDateTime()
Returns the deletion time of the blob.
Type | Description |
OffsetDateTime |
getEtag()
public String getEtag()
Returns HTTP 1.1 Entity tag for the blob. See Also: Entity Tags
Type | Description |
String |
getEventBasedHold()
public Boolean getEventBasedHold()
Returns a Boolean
with either true
, null
and in certain cases
false
.
Case 1: true
the field com.google.cloud.storage.Storage.BlobField#EVENT_BASED_HOLD is selected in a Storage#get(BlobId, Storage.BlobGetOption...) and event-based hold for the blob is enabled.
Case 2.1: null
the field com.google.cloud.storage.Storage.BlobField#EVENT_BASED_HOLD is selected in a Storage#get(BlobId, Storage.BlobGetOption...), but event-based hold for the blob is not
enabled. This case can be considered implicitly false
.
Case 2.2: null
the field com.google.cloud.storage.Storage.BlobField#EVENT_BASED_HOLD is not selected in a Storage#get(BlobId, Storage.BlobGetOption...), and the state for this field is unknown.
Case 3: false
event-based hold is explicitly set to false using in a Builder#setEventBasedHold(Boolean) client side for a follow-up request e.g. Storage#update(BlobInfo, Storage.BlobTargetOption...) in which case the value of event-based
hold will remain false
for the given instance.
Type | Description |
Boolean |
getGeneratedId()
public String getGeneratedId()
Returns the service-generated for the blob.
Type | Description |
String |
getGeneration()
public Long getGeneration()
Returns blob's data generation. Used for blob versioning.
Type | Description |
Long |
getKmsKeyName()
public String getKmsKeyName()
Returns the Cloud KMS key used to encrypt the blob, if any.
Type | Description |
String |
getMd5()
public String getMd5()
Returns the MD5 hash of blob's data encoded in base64. See Also: Hashes and ETags: Best Practices
Type | Description |
String |
getMd5ToHexString()
public String getMd5ToHexString()
Returns the MD5 hash of blob's data decoded to string. See Also: Hashes and ETags: Best Practices
Type | Description |
String |
getMediaLink()
public String getMediaLink()
Returns the blob's media download link.
Type | Description |
String |
getMetadata()
public @Nullable Map<@NonNull String,@Nullable String> getMetadata()
Returns blob's user provided metadata.
Type | Description |
@org.checkerframework.checker.nullness.qual.Nullable java.util.Map<@org.checkerframework.checker.nullness.qual.NonNull java.lang.String,@org.checkerframework.checker.nullness.qual.Nullable java.lang.String> |
getMetageneration()
public Long getMetageneration()
Returns blob's metageneration. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular blob.
Type | Description |
Long |
getName()
public String getName()
Returns the blob's name.
Type | Description |
String |
getOwner()
public Acl.Entity getOwner()
Returns the blob's owner. This will always be the uploader of the blob.
Type | Description |
Acl.Entity |
getRetentionExpirationTime() (deprecated)
public Long getRetentionExpirationTime()
Deprecated. Use #getRetentionExpirationTimeOffsetDateTime()
Returns the retention expiration time of the blob as Long
, if a retention period is
defined. If retention period is not defined this value returns null
Type | Description |
Long |
getRetentionExpirationTimeOffsetDateTime()
public OffsetDateTime getRetentionExpirationTimeOffsetDateTime()
Returns the retention expiration time of the blob, if a retention period is defined. If
retention period is not defined this value returns null
Type | Description |
OffsetDateTime |
getSelfLink()
public String getSelfLink()
Returns the URI of this blob as a string.
Type | Description |
String |
getSize()
public Long getSize()
Returns the content length of the data in bytes. See Also: Content-Length
Type | Description |
Long |
getStorageClass()
public StorageClass getStorageClass()
Returns the storage class of the blob.
Type | Description |
StorageClass |
getTemporaryHold()
public Boolean getTemporaryHold()
Returns a Boolean
with either true
, null
and in certain cases
false
.
Case 1: true
the field com.google.cloud.storage.Storage.BlobField#TEMPORARY_HOLD is selected in a Storage#get(BlobId, Storage.BlobGetOption...) and temporary hold for the blob is enabled.
Case 2.1: null
the field com.google.cloud.storage.Storage.BlobField#TEMPORARY_HOLD is selected in a Storage#get(BlobId, Storage.BlobGetOption...), but temporary hold for the blob is not enabled.
This case can be considered implicitly false
.
Case 2.2: null
the field com.google.cloud.storage.Storage.BlobField#TEMPORARY_HOLD is not selected in a Storage#get(BlobId, Storage.BlobGetOption...), and the state for this field is unknown.
Case 3: false
event-based hold is explicitly set to false using in a Builder#setEventBasedHold(Boolean) client side for a follow-up request e.g. Storage#update(BlobInfo, Storage.BlobTargetOption...) in which case the value of temporary
hold will remain false
for the given instance.
Type | Description |
Boolean |
getTimeStorageClassUpdated() (deprecated)
public Long getTimeStorageClassUpdated()
Deprecated. Use #getTimeStorageClassUpdatedOffsetDateTime()
Returns the time that the object's storage class was last changed or the time of the object creation.
Type | Description |
Long |
getTimeStorageClassUpdatedOffsetDateTime()
public OffsetDateTime getTimeStorageClassUpdatedOffsetDateTime()
Returns the time that the object's storage class was last changed or the time of the object creation.
Type | Description |
OffsetDateTime |
getUpdateTime() (deprecated)
public Long getUpdateTime()
Deprecated. Use #getUpdateTimeOffsetDateTime()
Returns the last modification time of the blob's metadata expressed as the number of milliseconds since the Unix epoch.
Type | Description |
Long |
getUpdateTimeOffsetDateTime()
public OffsetDateTime getUpdateTimeOffsetDateTime()
Returns the last modification time of the blob's metadata.
Type | Description |
OffsetDateTime |
hashCode()
public int hashCode()
Type | Description |
int |
isDirectory()
public boolean isDirectory()
Returns true
if the current blob represents a directory. This can only happen if the
blob is returned by Storage#list(String, Storage.BlobListOption...) when the Storage.BlobListOption#currentDirectory() option is used. When this is the case only #getBlobId() and #getSize() are set for the current blob: BlobId#getName()
ends with the '/' character, BlobId#getGeneration() returns null
and #getSize() is 0
.
Type | Description |
boolean |
toBuilder()
public BlobInfo.Builder toBuilder()
Returns a builder for the current blob.
Type | Description |
BlobInfo.Builder |
toString()
public String toString()
Type | Description |
String |