You need to enable JavaScript to run this app. 如何使用Node JS版Kuzzle JS SDK通过WebSocket协议调用S3 Plugin
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node JS版Kuzzle JS SDK通过WebSocket协议调用S3 Plugin

Node.js 环境下基于Kuzzle SDK WebSocket协议对接kuzzle-plugin-s3 操作指引

核心逻辑说明

Kuzzle的所有插件自定义接口,无论底层使用HTTP还是WebSocket传输协议,调用参数、返回结构完全一致。已有的HTTP测试示例中的接口参数规则可直接复用,仅需将SDK的传输适配器替换为WebSocket模式即可。

前置SDK初始化

// 导入Node版Kuzzle SDK与WebSocket适配器
const { Kuzzle, WebSocket } = require('kuzzle-sdk');

// 初始化WebSocket连接
const kuzzle = new Kuzzle(
  new WebSocket('Kuzzle服务域名/IP', { port: 7512 })
);

// 建立长连接
await kuzzle.connect();

WebSocket模式下的S3文件上传实现

上传流程和HTTP模式完全一致,分为两个标准步骤:

  • 第一步:调用插件接口获取S3预签名上传凭证
const signResult = await kuzzle.query({
  controller: 's3/upload',
  action: 'getSignedUrl',
  body: {
    fileName: '待上传的文件名.后缀',
    fileMimeType: '文件对应的MIME类型'
  }
});

返回结果中的预签名PUT地址、请求头要求等信息,和HTTP模式下的返回结构无差异

  • 第二步:使用S3官方SDK,向返回的预签名地址直接发起文件上传,这一步与Kuzzle的传输协议无关,为S3侧标准操作。

文件列表查询实现

直接通过SDK调用插件的列表查询接口即可:

const listResult = await kuzzle.query({
  controller: 's3/file',
  action: 'list',
  args: {
    prefix: '需要查询的文件路径前缀',
    maxKeys: 100 // 单页返回的最大文件数量
  }
});
// listResult.result 可获取到匹配的文件元数据列表、存储路径等信息

文件合法性校验实现

调用插件的校验动作完成文件存在性、访问权限的校验:

const verifyResult = await kuzzle.query({
  controller: 's3/file',
  action: 'verify',
  body: {
    filePath: '待校验的文件完整存储路径'
  }
});
// verifyResult.result 返回校验结果,包含文件是否存在、可访问范围等信息

注意:如果调用接口时出现“控制器/动作不存在”的报错,优先确认Kuzzle服务端的s3插件是否正常加载、所使用的插件版本与调用的接口参数匹配。

内容的提问来源于stack exchange,提问作者Chris Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 21:45:04