NOS上传场景

关于Nos的详情请参考 NosService,NOS上传场景可以让开发者根据使用场景自定义文件在NOS服务器的过期时间,从而减少服务器的硬盘空间占用。

场景配置

在初始化SDK时,可做相应的NOS场景配置,参考代码:

//init sdk
NIMClient.init(this, getLoginInfo(), getSDKOptions(this));

static SDKOptions getSDKOptions(Context context) {
        SDKOptions options = new SDKOptions();
         //其他配置
        options.mNosTokenSceneConfig = createNosTokenScene();
        return options;
    }


public static final String TEST_NOS_SCENE_KEY="test_nos_scene_key";

private static NosTokenSceneConfig createNosTokenScene() {
      NosTokenSceneConfig nosTokenSceneConfig = new NosTokenSceneConfig();

      //更新默认场景(NimNosSceneKeyConstant.NIM_DEFAULT_IM)对应的过期时间(天)
      nosTokenSceneConfig.updateDefaultIMSceneExpireTime(1);

      //更新默认场景 (NimNosSceneKeyConstant.NIM_DEFAULT_PROFILE) 对应的过期时间(天)
      nosTokenSceneConfig.updateDefaultProfileSceneExpireTime(2);

      //设置自定义场景及对应的过期时间(天),0代表永不过期。
      //建议sceneKey常量化,这样使用的时候比较方便,目前支持自定义最多10种场景
      nosTokenSceneConfig.appendCustomScene(TEST_NOS_SCENE_KEY, 4);
      return nosTokenSceneConfig;
    }

默认配置

如果开发者不做任何的配置,那么将启用默认配置,默认配置的过期时间都为0(不过期),默认配置目前有3项:

  1. NimNosSceneKeyConstant.NIM_DEFAULT_IM : 私聊、群聊、聊天室发送图片、音频、视频、文件.....默认走这个场景 ,过期时间可以在初始化时修改。
  2. NimNosSceneKeyConstant.NIM_DEFAULT_PROFILE :用户、群组..资料(eg:头像)的上传默认走这个场景,过期时间可以在初始化时修改。
  3. NimNosSceneKeyConstant.NIM_SYSTEM_NOS_SCENE :sdk内部上传文件(eg:日志)默认走这个场景)并且对应的过期时间不允许修改。

配置的使用

发送消息

Tip : 如果使用了不存在的场景,那么上传将失败(错误码:5)

文件过期