对象存储OSS的 harmonyOS SDK 中,怎么监听文件的上传进度?

对象存储OSS 的 HarmonyOS SDK 中,怎么监听文件的上传进度

展开
收起
游客jwgv3cmgmv3pi 2025-03-27 15:54:40 86 分享 版权
1 条回答
写回答
取消 提交回答
  • 在使用阿里云对象存储OSS的HarmonyOS SDK上传文件时,可以通过实现进度监听功能来获取并显示文件的实时上传进度。虽然直接针对HarmonyOS的具体代码示例没有给出,但可以参考Android平台上的做法,因为两者在开发模式上有一定的相似性。下面将介绍如何设置一个简单的进度监听器以监控文件上传过程中的状态。

    步骤 1: 准备工作

    • 确保已经正确配置了OSS服务,并且您的项目中已集成阿里云OSS的HarmonyOS SDK。
    • 准备好要上传到OSS的对象(文件)以及目标Bucket和Object名称。

    步骤 2: 创建并配置PutObjectRequest

    首先创建一个PutObjectRequest实例,指定待上传文件的目标位置等信息:

    // 替换为实际值
    String bucketName = "your-bucket-name";
    String objectKey = "path/to/your/file.txt"; // OSS上文件路径
    String localFilePath = "/path/to/local/file.txt"; // 本地文件路径
    
    PutObjectRequest put = new PutObjectRequest(bucketName, objectKey, new File(localFilePath));
    

    步骤 3: 设置进度监听器

    接下来,为上述请求添加一个进度监听器。这个监听器会在文件上传过程中被调用,允许您更新UI或记录日志等操作:

    put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
        @Override
        public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
            // currentSize 表示当前已上传的数据量(字节)
            // totalSize 表示整个文件的大小(字节)
    
            int progressPercentage = (int)(currentSize * 100.0 / totalSize);
            System.out.println("Upload Progress: " + progressPercentage + "% (" + currentSize + "/" + totalSize + ")");
        }
    });
    

    步骤 4: 执行上传任务

    最后,通过异步方式发起上传请求,并处理成功或失败的情况:

    oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
        @Override
        public void onSuccess(PutObjectRequest request, PutObjectResult result) {
            System.out.println("File uploaded successfully.");
        }
    
        @Override
        public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
            System.err.println("Failed to upload file: " + clientExcepion.getMessage());
        }
    });
    

    以上步骤展示了如何在HarmonyOS应用中利用阿里云OSS SDK监听文件上传进度的基本方法。请注意,具体API可能根据SDK版本有所变化,请参照最新官方文档进行调整。

    相关链接
    上传文件到OSS的多种方式 | 对象存储 https://help.aliyun.com/zh/oss/user-guide/upload-objects-to-oss/
    上传OSS文件时获取上传进度 | 对象存储 https://help.aliyun.com/zh/oss/user-guide/upload-progress-bar

    2025-03-28 08:49:39
    赞同 362 展开评论

对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。

还有其他疑问?
咨询AI助理