版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
详细解答可以参考官方帮助文档
Append Object以追加写的方式上传文件。通过Append Object操作创建的Object类型为Appendable Object,而通过Put Object上传的Object是Normal Object。
AppendObjectRequest append = new AppendObjectRequest(testBucket, testObject, uploadFilePath);ObjectMetadata metadata = new ObjectMetadata();metadata.setContentType("application/octet-stream");append.setMetadata(metadata);// 设置追加位置append.setPosition(0);append.setProgressCallback(new OSSProgressCallback<AppendObjectRequest>() {@Overridepublic void onProgress(AppendObjectRequest request, long currentSize, long totalSize) {Log.d("AppendObject", "currentSize: " + currentSize + " totalSize: " + totalSize);}});OSSAsyncTask task = oss.asyncAppendObject(append, new OSSCompletedCallback<AppendObjectRequest, AppendObjectResult>() {@Overridepublic void onSuccess(AppendObjectRequest request, AppendObjectResult result) {Log.d("AppendObject", "AppendSuccess");Log.d("NextPosition", "" + result.getNextPosition());}@Overridepublic void onFailure(AppendObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {// 异常处理}});
用户使用Append方式上传,关键要对Position这个参数进行正确的设置:
当用户创建一个Appendable Object时,追加位置设为0。
当对Appendable Object进行内容追加时,追加位置设为Object当前长度。有两种方式获取该Object长度: