跳到主要内容

ServiceData

源码

service = ServiceData(
cache: CacheAbstract[CachedFileInfo, CachedData],
service_name: str = "/cached-data",
chunk_size: int = 1,
)

提供数据流的服务。

该实例使用一个缓存来储存临时数据。可以直接访问或下载这种临时数据项。

别名

该类可以通过以下方法取得。

import dash_file_cache as dfc


dfc.ServiceData
dfc.services.ServiceData
dfc.services.data.ServiceData

参数

参数类型必选
说明
cacheCacheAbstract[CachedFileInfo, CachedData]管理临时数据的缓存实例。该值可以是CachePlainCacheQueueCacheFile
service_namestr服务的名称。
chunk_sizeint向用户推送数据时使用的块尺寸。单位为MB

方法

register

addr: str = service.register(
fobj: str | os.PathLike | io.StringIO | io.BytesIO,
file_name: str = "",
content_type: str = "",
mime_type: str = "image/jpeg",
one_time_service: bool = False,
download: bool = False,
)

向缓存注册一个新文件(可以是路径或类文件对象)。

输入

参数类型必选
说明
fobjstr | os.PathLike | io.StringIO | io.BytesIO要注册的某文件的路径、或文件IO对象。
file_namestr

fobj的文件名。若未指定,则会试图

  1. fobj是路径时,从路径获取文件名。
  2. 否则,随机生成一个填充文件名。

注意,该值只会在下载文件时用到。

content_typestr响应的内容类型。可以在这里指定可选的编码。若未指定,使用mime_type填充该值。
mime_typestr响应的媒体类型。一般地,它只由数据的文件类型决定。
one_time_servicebool

二值量。启用时,会透过退出机制、在数据下一次推送完毕后移出该缓存数据。

当数据仅用来完成一次下载时,建议启用该值。

downloadbool二值量。启用时,会将返回的链接标记为专用于下载。

输出

参数类型
说明
addrstr用来访问临时缓存文件的URL。

stream

resp: flask.Response = service.stream(uid: str, download: bool = False)

使用流数据供应器、封装缓存的数据。

注意

用户不应显式地调用该方法。该方法会在访问相关服务时自动被调用。

输入

参数类型必选
说明
uidstr用来访问缓存项的UUID。若未找到,抛出FileNotFoundError
downloadbool二值量。启用时,将数据流标记成下载专用。

输出

参数类型
说明
respflask.Response用来将数据发送给前端的Flask响应。

serve

service.serve(app: dash.Dash | flask.Flask, endpoint: str | None = None)

向Flask应用添加服务。

输入

参数类型必选
说明
appdash.Dash | flask.Flask服务将会绑定到的应用。
endpointstr | None服务的endpoint。若未指定,使用服务地址推测该值。

属性

cache

cache: CacheAbstract[CachedFileInfo, CachedData] = service.cache

该服务使用的缓存。


chunk_size

chunk_size: int = cache.chunk_size

new_chunk_size: int
cache.chunk_size = new_chunk_size

向用户推送数据时使用的块尺寸。单位为MB

范例

参见

变更图片

Flask服务