Class ReactiveGridFsResource
java.lang.Object
org.springframework.data.mongodb.gridfs.ReactiveGridFsResource
- All Implemented Interfaces:
GridFsObject<Object,org.reactivestreams.Publisher<DataBuffer>>
public class ReactiveGridFsResource
extends Object
implements GridFsObject<Object,org.reactivestreams.Publisher<DataBuffer>>
- Since:
- 2.2
- Author:
- Mark Paluch, Christoph Strobl
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.data.mongodb.gridfs.GridFsObject
GridFsObject.Options -
Constructor Summary
ConstructorsConstructorDescriptionReactiveGridFsResource(Object id, String filename, GridFsObject.Options options, com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher downloadPublisher) Creates a new, absentReactiveGridFsResource.ReactiveGridFsResource(String filename, com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher downloadPublisher) Creates a new, absentReactiveGridFsResource. -
Method Summary
Modifier and TypeMethodDescriptionstatic ReactiveGridFsResourceObtain an absentReactiveGridFsResource.booleanexists()reactor.core.publisher.Flux<DataBuffer>The actual file content.reactor.core.publisher.Flux<DataBuffer>Obtain the download stream emitting chunks of data as they come in.reactor.core.publisher.Flux<DataBuffer>getDownloadStream(int chunkSize) Obtain the download stream emitting chunks of data with givenchunkSizeas they come in.TheGridFSFile.getId()value converted into its simple java type.The filename.reactor.core.publisher.Mono<com.mongodb.client.gridfs.model.GridFSFile>reactor.core.publisher.Mono<InputStream>Obtain the data asInputStream.Additional information like file metadata (eg. contentType).
-
Constructor Details
-
ReactiveGridFsResource
public ReactiveGridFsResource(String filename, @Nullable com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher downloadPublisher) Creates a new, absentReactiveGridFsResource.- Parameters:
filename- filename of the absent resource.downloadPublisher-
-
ReactiveGridFsResource
public ReactiveGridFsResource(@Nullable Object id, String filename, GridFsObject.Options options, @Nullable com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher downloadPublisher) Creates a new, absentReactiveGridFsResource.- Parameters:
id-filename- filename of the absent resource.options-downloadPublisher-- Since:
- 3.0
-
-
Method Details
-
absent
Obtain an absentReactiveGridFsResource.- Parameters:
filename- filename of the absent resource, must not be null.- Returns:
- never null.
- Since:
- 2.1
-
getFileId
Description copied from interface:GridFsObjectTheGridFSFile.getId()value converted into its simple java type.
ABsonStringwill be converted to plainString.- Specified by:
getFileIdin interfaceGridFsObject<Object,org.reactivestreams.Publisher<DataBuffer>> - Returns:
- can be null depending on the implementation.
-
getFilename
Description copied from interface:GridFsObjectThe filename.- Specified by:
getFilenamein interfaceGridFsObject<Object,org.reactivestreams.Publisher<DataBuffer>> - Returns:
- Throws:
IllegalStateException- See Also:
-
getGridFSFile
public reactor.core.publisher.Mono<com.mongodb.client.gridfs.model.GridFSFile> getGridFSFile()- Returns:
- the underlying
GridFSFile. Can be null if absent. - Since:
- 2.2
-
getInputStream
Obtain the data asInputStream.
NOTE: Buffers data in memory. UsegetDownloadStream()for large files.- Throws:
IllegalStateException- if the underlyingPublisherhas already been consumed.- Since:
- 3.0
- See Also:
-
getDownloadStream
Obtain the download stream emitting chunks of data as they come in.- Returns:
Flux.empty()if the file does not exist.- Throws:
IllegalStateException- if the underlyingPublisherhas already been consumed.- Since:
- 3.0
- See Also:
-
getContent
Description copied from interface:GridFsObjectThe actual file content.- Specified by:
getContentin interfaceGridFsObject<Object,org.reactivestreams.Publisher<DataBuffer>> - Returns:
-
getOptions
Description copied from interface:GridFsObjectAdditional information like file metadata (eg. contentType).- Specified by:
getOptionsin interfaceGridFsObject<Object,org.reactivestreams.Publisher<DataBuffer>> - Returns:
- never null.
-
getDownloadStream
Obtain the download stream emitting chunks of data with givenchunkSizeas they come in.- Parameters:
chunkSize- the preferred number of bytes per emittedDataBuffer.- Returns:
Flux.empty()if the file does not exist.- Throws:
IllegalStateException- if the underlyingPublisherhas already been consumed.- Since:
- 3.0
- See Also:
-
exists
public boolean exists()
-