设置目录保护

OSS-HDFS服务(JindoFS服务)的目录保护功能用于增强数据安全性,防止您在操作过程中意外或错误地删除目录。设置目录保护后,只要该目录下包含任何子目录或文件,将严格限制对目录进行删除或重命名操作。只有当被保护目录内部彻底清空,即不再包含任何子目录和文件时,才允许对目录进行删除或重命名等操作。

前提条件

已开通并授权访问OSS-HDFS服务。具体操作,请参见开通OSS-HDFS服务

使用限制

支持通过OSS控制台或JindoFS命令行工具设置目录保护,两种方式合计最多可配置3000个受保护的目录路径。

通过OSS控制台设置目录保护

要通过OSS控制台设置目录保护,需要先提交工单申请。

  1. 设置目录保护。

    1. 登录OSS管理控制台

    2. 单击左侧导航栏的Bucket列表,然后单击目标Bucket。

    3. 在左侧导航栏,选择数据湖管理 > HDFS服务

    4. HDFS服务页签,开启目录保护,然后设置需要保护的一个或者多个目录。

      指定的目录路径必须是以正斜线(/)开头的绝对路径。多个目录路径之间换行分隔。

      image

    5. 单击保存

      设置完成后,目录保护功能将在30秒内正式生效。

  2. (可选)如果因业务场景需要重命名或删除目录,可以选择关闭目录保护。

    1. 关闭目录保护。

      说明

      您可以选择一键关闭保护所有目录,也可以按需移除不再需要保护的单个或多个目录。

      image

    2. 单击保存

通过JindoFS命令行工具设置目录保护

  1. 连接ECS实例。具体操作,请参见连接ECS实例

  2. 下载JindoFS命令行工具

  3. 配置访问密钥和环境变量。

    1. 进入已安装的Jindofs JAR包下的bin目录。

      以下以jindofs-sdk-x.x.x-linux为例,如使用其他版本的JindoSDK,请替换为对应的JAR包名称。

      cd jindofs-sdk-x.x.x-linux/bin/
    2. bin目录下新建配置文件jindofs.cfg,并配置阿里云账号的访问密钥(包括Accesskey IDAccesskey Secret),或者满足权限要求的RAM用户的访问密钥。

      [client]
      fs.oss.accessKeyId = <key>              
      fs.oss.accessKeySecret = <secret>
    3. 设置环境变量。

      说明

      <JINDOSDK_CONF_DIR>填写jindofs.cfg配置文件所在的绝对路径。

      export JINDOSDK_CONF_DIR=<JINDOSDK_CONF_DIR>
  4. 设置目录保护。

    为华东1(杭州)地域的examplebucket下的/path/to/dir1/path/to/dir2设置目录保护示例如下。

    ./jindofs admin -putConfig -dlsUri oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/  -conf fs.protected.directories=/path/to/dir1,/path/to/dir2
    说明
    • 指定的目录路径必须是以正斜线(/)开头的绝对路径。多个目录路径之间以英文逗号分隔。

    • 执行以上命令后,无任何返回信息说明已成功设置目录保护。设置完成后,目录保护功能将在30秒内正式生效。

  5. (可选)查看被保护的目录。

    ./jindofs admin -getConfig -dlsUri oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/ -name fs.protected.directories

    返回值示例如下:

    fs.protected.directories: /path/to/dir1,/path/to/dir2
  6. (可选)设置目录保护后,如果因业务场景需要重命名或删除目录,可以选择解除目录保护。

    重要

    执行以下命令将一键解除保护当前Bucket下的所有目录,不支持解除保护指定目录。

    ./jindofs admin -putConfig -dlsUri oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/ -conf fs.protected.directories=