文件构造器
构造器构建 FILE 家族表达式:默认情况下,file、image_file、audio_file 和 video_file 不会访问被引用对象;to_file、try_to_file 和 from_files 会在执行时解析存储。
签名
vane.file(url, content_type=None, position=None, size=None, checksum=None) -> Expression vane.image_file(url_or_file, verify=False) -> Expression vane.audio_file(url_or_file, verify=False) -> Expression vane.video_file(url_or_file, verify=False) -> Expression vane.to_file(path) -> Expression vane.try_to_file(path) -> Expression vane.from_files(path, *, connection=None) -> Relation
SQL:file(url, content_type, position, size, checksum)、image_file(url_or_file [, verify])、audio_file(url_or_file [, verify])、video_file(url_or_file [, verify])、to_file(path) 和 try_to_file(path)。SQL 中 file 需要全部五个参数;Python 形式把可选字段默认为 None。from_files 仅 Python。
expr.as_file(media_type=MediaType.unknown()) 是 Expression 方法形式:以该表达式的字符串值构建同样的 FILE 家族表达式,media_type 选择 FILE、IMAGEFILE、AUDIOFILE 或 VIDEOFILE。
参数
| 名称 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| url | 字符串或 Expression | 对象 URL | 必填 |
| content_type | 字符串、Expression 或 None | 声明的 MIME 类型 | None |
| position / size | 整数、Expression 或 None | 对象内的可选字节窗口 | None |
| checksum | 字符串、Expression 或 None | 声明的校验和 | None |
| url_or_file | 字符串、FILE 值或 Expression | 重新定型为 IMAGEFILE/AUDIOFILE/VIDEOFILE 的 URL 或 FILE 视图 | 必填 |
| verify | bool 或 Expression | 构造时是否验证有界内容 | False |
| path | 字符串、Expression 或字符串列表(from_files) | 解析为 FILE 的路径 | 必填 |
返回值与错误
file、to_file 和 try_to_file 返回 FILE;image_file/audio_file/video_file 返回对应子类型的 FILE。to_file 与 try_to_file 在执行时打开对象并返回其完整逻辑视图(position = 0、size 为对象大小);to_file 失败时报错,try_to_file 对可恢复的访问失败返回 NULL。from_files 返回由 FILE 值构成的单列关系,基于 list_files。file 不访问对象;类型化构造器仅在 verify=True 进行有界内容校验时访问对象。
示例
import vane con = vane.connect() con.sql("SELECT image_file('photo.png') AS file").show() vane.from_files("photos/*.png", connection=con).show()