对象存储OSS 的 HarmonyOS SDK 中,怎么监听文件的上传进度
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云对象存储OSS的HarmonyOS SDK上传文件时,可以通过实现进度监听功能来获取并显示文件的实时上传进度。虽然直接针对HarmonyOS的具体代码示例没有给出,但可以参考Android平台上的做法,因为两者在开发模式上有一定的相似性。下面将介绍如何设置一个简单的进度监听器以监控文件上传过程中的状态。
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));
接下来,为上述请求添加一个进度监听器。这个监听器会在文件上传过程中被调用,允许您更新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 + ")");
}
});
最后,通过异步方式发起上传请求,并处理成功或失败的情况:
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
对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。