Options
All
  • Public
  • Public/Protected
  • All
Menu

云存储相关 API:上传文件,文件处理等。

Hierarchy

  • CloudStorageInterface

Implemented by

Index

Methods

  • audioToMp3(options: { url: string }): string
  • audioToText(options: { url: string; done: any }): void
  • 音频转文字。注意,该功能仅在 NIM 中可以使用。Chatroom尚未实现此功能。

    • 仅支持通过previewFile或者sendFile拿到的音频 url, 或者收到的音频消息的 url

    Parameters

    Returns void

  • blurImage(options: { radius: number; sigma: number; url: string; done?: any }): void
  • 高斯模糊图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url

    Parameters

    • options: { radius: number; sigma: number; url: string; done?: any }
      • radius: number

        高斯模糊半径

      • sigma: number

        高斯模糊标准差,不能小于 0

      • url: string

        NOS 图片源链接

      • done?:function

    Returns void

  • cropImage(options: { height: number; url: string; width: number; x: number; y: number; done?: any }): void
  • 剪裁图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 从坐标 (x, y) 处截取尺寸为 width*height 的图片, (0, 0) 代表左上角
    • width/height 不能小于0, 如果 width/height 大于图片的原始宽度/高度, 那么将被替换为图片的原始宽度/高度

    Parameters

    • options: { height: number; url: string; width: number; x: number; y: number; done?: any }
      • height: number

        高度, 必须需为整数

      • url: string

        NOS 图片源链接

      • width: number

        宽度, 必须需为整数

      • x: number

        x 坐标, 必须需为整数

      • y: number

        y 坐标, 必须需为整数

      • done?:function

    Returns void

  • deleteNosAccessToken(options: { token: string; done: any }): void
  • getNosAccessToken(options: { ext?: string; url: string; userAgent?: string; done: any }): void
  • 获取文件的短链接的鉴权 token

    • 在上传文件时,若设置参数nosScenes为nim_security_开头的字符串,则需要调用该接口获取token后才能下载文件。nosScenes可在初始化时全局配置,也可在发送、预览某文件时单独设置
    • 下载文件后请及时 CloudStorageInterface.deleteNosAccessToken,避免token泄漏

    Parameters

    • options: { ext?: string; url: string; userAgent?: string; done: any }
      • Optional ext?: string
      • url: string

        文件 url

      • Optional userAgent?: string
      • done:function
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { resUrl: string; token: string }
            • resUrl: string

              完整可访问的链接

            • token: string

          Returns void

    Returns void

  • getNosOriginUrl(options: { safeShortUrl: string; done: any }): void
  • 短链接转长链接

    Parameters

    Returns void

  • interlaceImage(options: { url: string; done?: any }): void
  • interlace 图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 在网络环境较差时, interlace 后的图片会以从模糊到清晰的方式呈现给用户

    Parameters

    Returns void

  • packFileDownloadName(options: { name: string; url: string }): string
  • deprecated

    已废弃。修改图片下载的名字


    如果文件存储使用的是网易云信的 NOS ,请参照存储对象文档 https://sf.163.com/help/documents/114085619316215808

    Parameters

    • options: { name: string; url: string }
      • name: string
      • url: string

    Returns string

  • 上传并且预览文件。开发者在拿到文件对象之后, 可以调用发送文件消息来发送文件消息。

    注意一

    • fileInput、file、blob、filePath四个参数选择一个传入
    • fileInput: type='file'类型的input DOM元素的id。上传完成前请不要操作此节点上的文件
    • file: previewFile 回调函数的参数
    • blob: Blob类型JS对象
    • filePath: RN,小程序等特殊的 JS 运行环境专用(chooseImage 拿到的该临时路径)

    注意二

    • type: image、audio、video 或 file。默认为 file。主要区别在于消息体中 file 对象含有的信息不同
    • image: url, name, size, ext, w, h, type
    • audio: url, name, size, ext, container, dur
    • video: url, name, size, ext, container, dur, w, h
    • file: url, name, size, ext

    注意三

    • 文件大小限制为最大 100M
    • 高级浏览器会在上传前就检测文件大小
    • IE8/IE9 会在上传完成后检测文件大小

    Parameters

    Returns void

  • processImage(options: { ops: NIMStrAnyObj; url: string; done?: any }): void
  • 处理图片

    此方法接收一组图片操作, 按操作顺序依次处理图片, 可选的操作包括:

    • 修改图片质量
    • interlace 图片
    • 旋转图片
    • 高斯模糊图片
    • 裁剪图片
    • 生成缩略图
    • 预览文件
    • 发送文件消息

    每个操作所需的参数请参考上面的各个方法, 除了上面方法列出来的参数之外, 每个操作需要提供操作类型, 分别是

    • 'quality'
    • 'interlace'
    • 'rotate'
    • 'blur'
    • 'crop'
    • 'thumbnail'

    示例代码

    // 裁剪后旋转
    var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=';
    nim.processImage({
    url: url,
    ops: [
    {
    type: 'crop',
    x: 100,
    y: 0,
    width: 250,
    height: 250,
    },
    {
    type: 'thumbnail',
    mode: 'cover',
    width: 80,
    height: 80
    }
    ],
    done: processImageDone
    });
    function processImageDone(error, obj) {
    console.log('处理图片' + (!error?'成功':'失败'), error, obj);
    }

    Parameters

    • options: { ops: NIMStrAnyObj; url: string; done?: any }
      • ops: NIMStrAnyObj

        操作序列. 按操作顺序依次处理图片, 具体格式参照前面几个和 image 相关的处理接口

        类似这样的效果

        [ { type: 'crop', x: 100, y: 0, width: 250, height: 250, }, { type: 'thumbnail', mode: 'cover', width: 80, height: 80 } ]

      • url: string
      • done?:function

    Returns void

  • qualityImage(options: { quality: number; url: string; done?: any }): void
  • 修改图片质量

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 默认图片质量为100, 开发者可以降低图片质量来省流量

    Parameters

    • options: { quality: number; url: string; done?: any }
      • quality: number

        图片质量, 必须为整数, 取值范围为 0-100

      • url: string

        NOS 图片源链接

      • done?:function

    Returns void

  • rotateImage(options: { angle: number; url: string; done?: any }): void
  • 旋转图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url

    Parameters

    • options: { angle: number; url: string; done?: any }

    Returns void

  • stripImageMeta(options: { url: string; done: any }): string
  • 去除图片元信息

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 去除元信息后的图片将不包含 EXIF 信息

    Parameters

    Returns string

  • thumbnailImage(options: { axis: { x: number; y: number }; height?: number; url: string; width?: number; done?: any }): void
  • 生成图片的略缩图

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • width/height 限制了缩略图的尺寸。width/height 必须大于等于 0, 不能同时为 0, 必须小于 4096
    • 不同模式下生成的缩略图是不一样的, 目前支持以下三种模式:
      • 'cover': 原图片等比缩略, 缩略图一边等于请求的尺寸, 另一边大于请求的尺寸, 即缩略图刚好能覆盖住尺寸为 width*height 的矩形
      • 'contain': 原图片等比缩略, 缩略图一边等于请求的尺寸, 另一边小于请求的尺寸, 即尺寸为 width*height 的矩形刚好能覆盖住缩略图
      • 'crop': 先等比缩略原图片, 使得一边等于请求的尺寸, 另一边大于请求的尺寸, 然后对大于请求尺寸的那条边进行裁剪, 使得最终的图片大小刚好等于请求的尺寸
    • 如果缩略图尺寸大于图片尺寸, 默认情况下图片不会被放大, 可以传入参数enlarge=true来放大图片
    • 'crop' 模式下可以传入参数 axis.x 或 axis.y 来控制最后一步裁剪的位置
      • x/y 必须为整数, 取值范围为 0-10, 此方法内部使用 Math.round 来格式化 x/y
      • x 为 0 时表示裁取最左端, x 为 10 时表示裁取最右端
      • y 为 0 时表示裁取最上端, y 为 10 时表示裁取最下端
      • x/y 默认值均为 5, 即裁取正中间

    Parameters

    • options: { axis: { x: number; y: number }; height?: number; url: string; width?: number; done?: any }
      • axis: { x: number; y: number }

        剪裁坐标

        • x: number

          x 坐标, 必须需为整数

        • y: number

          y 坐标, 必须需为整数

      • Optional height?: number

        缩略图的高度

      • url: string

        NOS 图片源链接

      • Optional width?: number

        缩略图的宽度

      • done?:function

    Returns void