Blob
public final class Blob : Equatable, Hashable
Blob contains arbitrary binary data, tagged with a MIME type.
Blobs can be arbitrarily large, and their data is loaded only on demand (when the content
or contentStream
properties are accessed), not when the document is loaded.
The document’s raw JSON form only contains the Blob’s metadata (type, length and a digest of
the data) in a small object. The data itself is stored externally to the document, keyed by
the digest.
-
Initializes a Blob with the given in-memory data.
Declaration
Swift
public convenience init(contentType: String, data: Data)
Parameters
contentType
The type of content this Blob will represent.
data
The data that this Blob will contain.
-
Initializes a Blob with the given stream of data.
Declaration
Swift
public convenience init(contentType: String, contentStream: InputStream)
Parameters
contentType
The type of content this Blob will represent.
contentStream
The stream of data that this Blob will consume.
-
Initializes a Blob with the contents of a file.
Throws
An error on a failure.Declaration
Swift
public convenience init(contentType: String, fileURL: URL) throws
Parameters
contentType
The type of content this Blob will represent.
fileURL
A URL to a file containing the data that this Blob will represent.
-
Gets the contents of a Blob as a block of memory. Not recommended for very large blobs, as it may be slow and use up lots of RAM.
Declaration
Swift
public var content: Data? { get }
-
A stream of the content of a Blob. The caller is responsible for opening the stream, and closing it when finished.
Declaration
Swift
public var contentStream: InputStream? { get }
-
The type of content this Blob represents; by convention this is a MIME type.
Declaration
Swift
public var contentType: String? { get }
-
The binary length of this Blob.
Declaration
Swift
public var length: UInt64 { get }
-
The cryptographic digest of this Blob’s contents, which uniquely identifies it.
Declaration
Swift
public var digest: String? { get }
-
The metadata associated with this Blob
Declaration
Swift
public var properties: [String : Any] { get }
-
Equal to operator for comparing two Blob objects.
Declaration
Swift
public static func == (blob1: Blob, blob2: Blob) -> Bool
-
Declaration
Swift
public func hash(into hasher: inout Hasher)
-
Returns a dictionary representation of the blob object in JSON string format. The dictionary will contain only metadata information without data. If Blob is not saved in the database which means that it doesn’t have digest information, calling toJSON() will not be allowed and it will throw an NSInternalInconsistencyException.
Declaration
Swift
public func toJSON() -> String
-
Return whether the given dictionary represents Blob or not
Declaration
Swift
public static func isBlob(properties: [String : Any]) -> Bool