ServiceData
类源码
service = ServiceData(
cache: CacheAbstract[CachedFileInfo, CachedData],
service_name: str = "/cached-data",
chunk_size: int = 1,
allowed_cross_origin: str | None = None,
)
提供数据流的服务。
该实例使用一个缓存来储存临时数据。可以直接访问或下载这种临时数据项。
别名
该类可以通过以下方法取得。
import dash_file_cache as dfc
dfc.ServiceData
dfc.services.ServiceData
dfc.services.data.ServiceData
参数
参数 | 类型 | 必选 | |
---|---|---|---|
cache | CacheAbstract[CachedFileInfo, CachedData] | 管理临时数据的缓存实例。该值可以是CachePlain ,CacheQueue 或CacheFile 。 | |
service_name | str | 服务的名称。 | |
chunk_size | int | 向用户推送数据时使用的块尺寸。单位为MB 。 | |
allowed_cross_origin | str | None | 提供数据时允许接入的跨域请求域。用法和"Access-Control-Allow-Origin" 相同。若该值为空或None ,则不设置跨域。 |
方法
register_request
addr: str = service.register_request(
url: str | urllib.parse.ParseResult,
headers: Mapping[str, str] | None = None,
file_name_fallback: str = "",
download: bool = False,
)
向缓存注册一个新的远端请求 。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
url | str | urllib.parse.ParseResult | 指向远端文件的字符串类型、或解析过的 URL。 | |
headers | Mapping[str, str] | None | 该请求定制的请求头。若未设置,则不使用任何请求头。 | |
file_name_fallback | str | 备用文件名。若设置过该值、且远端服务未提供文件名,则使用该文件名保存文件。 | |
download | bool | 二值量。启用时,会将返回的链接标记为专用于下载。 |
输出
参数 | 类型 | |
---|---|---|
addr | str | 用来访问临时缓存文件的URL。 |
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,
)
向缓存注册一个新文件(可以是路径或类文件对象)。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
fobj | str | os.PathLike | io.StringIO | io.BytesIO | 要注册的某文件的路径、或文件IO对象。 | |
file_name | str |
注意,该值只会在下载文件时用到。 | |
content_type | str | 响应的内容类型。可以在这里指定可选的编码。若未指定,使用mime_type 填充该值。 | |
mime_type | str | 响应的媒体类型。一般地,它只由数据的文件类型决定。 | |
one_time_service | bool | 二值量。启用时,会透过退出机制、在数据下一次推送完毕后移出该缓存数据。 当数据仅用来完成一次下载时,建议启用该值。 | |
download | bool | 二值量。启用时,会将返回的链接标记为专用于下载。 |
输出
参数 | 类型 | |
---|---|---|
addr | str | 用来访问临时缓存文件的URL。 |
stream
resp: flask.Response = service.stream(uid: str, download: bool = False)
使用流数据供应器、封装缓存的数据。
注意
用户不应显式地调用该方法。该方法会在访问相关服务时自动被调用。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
uid | str | 用来访问缓存项的UUID 。若未找到,抛出FileNotFoundError 。 | |
download | bool | 二值量。启用时,将数据流标记成下载专用。 |
输出
参数 | 类型 | |
---|---|---|
resp | flask.Response | 用来将数据发送给前端的Flask响应。 |
serve
service.serve(app: dash.Dash | flask.Flask, endpoint: str | None = None)
向Flask应用添加服务。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
app | dash.Dash | flask.Flask | 服务将会绑定到的应用。 | |
endpoint | str | None | 服务的endpoint。若未指定,使用服务地址推测该值。 |
属性
cache
cache: CacheAbstract[CachedFileInfo, CachedData] = service.cache
该服务使用的缓存。
chunk_size
chunk_size: int = service.chunk_size
new_chunk_size: int
service.chunk_size = new_chunk_size
向用户推送数据时使用的块尺寸。单位为MB
。
allowed_cross_origin
allowed_cross_origin: str = service.allowed_cross_origin
提供数据时允许接入的跨域请求域。若该值为空或None
,则不设置跨域。
范例
参见