ExternalResource
一个不可变的外部资源. 仅包含资源内容, 大小, 文件类型, 校验值而不包含文件名, 文件位置等. 外部资源有可能是一个文件, 也有可能只存在于内存, 或者以任意其他方式实现.
ExternalResource 在创建之后就应该保持其属性的不变, 即任何时候获取其属性都应该得到相同结果, 任何时候打开流都得到的一样的数据.
创建
File.toExternalResource
RandomAccessFile.toExternalResource
InputStream.toExternalResource
释放
当 ExternalResource 创建时就可能会打开一个文件 (如使用 File.toExternalResource). 类似于 InputStream, ExternalResource 需要被 close.
自 2.7 起, 每个 mirai 内置的 ExternalResource 实现都有引用跟踪, 当 ExternalResource 被 GC 后会执行被动释放, 但是该策略并不代表不需要手动 close.
实现 ExternalResource
可以自行实现 ExternalResource. 但通常上述创建方法已足够使用.
实现时需保持 ExternalResource 在构造后就不可变, 并且所有属性都总是返回一个固定值.
See also
Types
Functions
打开 InputStream. 在返回的 InputStream 被 InputStream.close 前无法再次打开流.
创建一个在 使用一次 后就会自动 close 的 ExternalResource.
Properties
文件格式,如 "png", "amr". 当无法自动识别格式时为 DEFAULT_FORMAT_NAME.
Inheritors
Extensions
上传文件并发送件消息. 如果要上传的文件格式是图片或者语音, 也会将它们作为文件上传而不会调整消息类型.
将图片作为单独的消息发送给指定联系人.
上传文件并获取文件消息.
上传图片并构造 Image. 这个函数可能需消耗一段时间.