华为云NFS使用API删除大文件目录

最近在使用华为云SFS时,如果一个目录存储文件数超过100W,执行 "rm -rf path"时,存在删不动的情况,可以使用华为云API接口,执行异步删除。

华为官网:

删除文件系统目录_弹性文件服务 SFS_API参考_SFS Turbo API说明_目录管理_华为云删除文件系统目录在2023年6月1号之后创建的文件系统支持该API操作。 警告:该API为删除文件系统子目录数据的高危操作,删除后无法恢复,使用前请确认下发的文件系统目录是否正确。您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。DELETE https://support.huaweicloud.com/api-sfs/DeleteFsDir.html

实现代码:

java 复制代码
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.sfsturbo.v1.region.SFSTurboRegion;
import com.huaweicloud.sdk.sfsturbo.v1.*;
import com.huaweicloud.sdk.sfsturbo.v1.model.*;


/**
 * TODO 删除NFS文件系统目录,高危险操作,务必谨慎执行!!!
 * TODO 删除NFS文件系统目录,高危险操作,务必谨慎执行!!!
 * TODO 删除NFS文件系统目录,高危险操作,务必谨慎执行!!!
 *
 *
 * @author XHH
 */
public class DeleteFsDirSolution {

    public static void main(String[] args) {

        String ak = "<Your AK>";
        String sk = "<Your SK>";

        String pathStr = "<Your Path>";
        String shareId = "<文件系统ID>";

        // 删除
        delFsDir(ak, sk, shareId, pathStr);
    }
    private static void delFsDir(String ak, String sk, String shareId, String pathStr) {

        ICredential auth = new BasicCredentials().withAk(ak).withSk(sk);
        SFSTurboClient client = SFSTurboClient.newBuilder()
                .withCredential(auth)
                .withRegion(SFSTurboRegion.valueOf("cn-southwest-2"))
                .build();
        DeleteFsDirRequest request = new DeleteFsDirRequest();
        request.withShareId(shareId);
        DeleteFsDirRequestBody body = new DeleteFsDirRequestBody();
        body.withPath(pathStr);
        request.withBody(body);

        System.out.println("删除路径: " +pathStr);
        try {
            DeleteFsDirResponse response = client.deleteFsDir(request);
            System.out.println("response ===> " + response.toString());
        } catch (ConnectionException | RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println("删除路径: " +pathStr+ " --> HttpStatusCode:" + e.getHttpStatusCode() + " --> RequestId:" + e.getRequestId() + " --> ErrorMsg:" + e.getErrorMsg());
        }

    }


}
相关推荐
fofantasy4 分钟前
NSK LH25FL 升级至 NH25EM 技术规格指南
服务器·网络·数据库·经验分享·规格说明书
慧一居士7 分钟前
SpringCloud 微服务Feigin 用的完整调用端和被调用的示例
java·spring cloud
CodeStats14 分钟前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker
我命由我1234514 分钟前
Jetpack Room - Room 查询返回列表无需判空、LIKE 关键字
android·java·开发语言·java-ee·android jetpack·android-studio·android runtime
facaixxx202420 分钟前
雨云服务器区域选择终极指南:地域速度、节点带宽、延迟及防御说明
服务器·云服务器·雨云服务器·云服务器区域·云服务器地域·云服务器节点
小坏蛋至尊宝21 分钟前
如何优化文件传输的性能?
运维·服务器
平安的平安27 分钟前
传统Java工程师第一次用飞算JavaAI生成SpringBoot项目
java
csjane107931 分钟前
Redisson 限流原理
java·redis
一个做软件开发的牛马33 分钟前
MyBatis 从零实战:完整搭建可运行 Demo,注解与 XML 双模式开发详解
java·后端
烂白菜33 分钟前
智码美形:华为云码道 × UI-UX-Pro-Max 高品质界面智能生成实践
ui·华为云·ux