最近更新时间:2025-01-03 17:13:48
通过Append Object上传的文件类型为Appendable,Appendable类型的文件后续可通过Append Object进行追加上传,非Appendable类型的文件不可通过Append Object进行追加上传。
如果是首次追加上传,需设置追加位置为0,如果是非首次追加上传,需设置追加上传位置为上次追加上传响应的nextAppendPosition值。
如需获取文件的下次追加位置,可通过以下方法获取:
// 初始化ks3 client,具体方法参见“初始化”文档
Ks3Client client = initClient();
HeadObjectResult headObjectResult = client.headObject("<your-bucket>", "<your-objectKey>");
// 获取文件类型,Appendable类型才能进行追加上传
String objectType = headObjectResult.getObjectMetadata().getObjectType();
// 获取下次追加位置
long nextAppendPosition = headObjectResult.getObjectMetadata().getNextAppendPosition();
// 初始化ks3 client,具体方法参见“初始化”文档
Ks3Client client = initClient();
// 填写本地文件的完整路径。
File file = new File("<path-of-your-file>");
AppendObjectRequest request = new AppendObjectRequest("<your-bucket>", "<object-key-append-to>", file);
// 设置追加位置,首次上传为0,非首次则为上次追加上传返回的nextAppendPosition,也可通过head object获取
request.setPosition(position);
// 设置其他信息,如 meta,acl,storageClass,objectTagging
// request.setObjectMeta(meta);
// request.setAcl(acl);
// request.setStorageClass(storageClass);
// request.setObjectTagging(tagging);
// 追加上传
AppendObjectResult appendObjectResult = client.appendObject(request);
// 获取下次追加位置
long nextAppendPosition = appendObjectResult.getNextAppendPosition();
// 获取etag
String eTag = appendObjectResult.geteTag();
// 初始化ks3 client,具体方法参见“初始化”文档
Ks3Client client = initClient();
// 填写本地文件的完整路径。
File file = new File("<path-of-your-file>");
// 使用流进行追加上传,注意:上传后须关闭流!这里try语句会自动关闭流
try (InputStream inputStream = Files.newInputStream(file.toPath())) {
AppendObjectRequest request = new AppendObjectRequest("<your-bucket>", "<object-key-append-to>", inputStream);
// 设置追加位置,首次上传为0,非首次则为上次追加上传返回的nextAppendPosition,也可通过head object获取
request.setPosition(position);
// 设置其他信息,如 meta,acl,storageClass,objectTagging
// request.setObjectMeta(meta);
// request.setAcl(acl);
// request.setStorageClass(storageClass);
// request.setObjectTagging(tagging);
// 追加上传
AppendObjectResult appendObjectResult = client.appendObject(request);
// 获取下次追加位置
long nextAppendPosition = appendObjectResult.getNextAppendPosition();
// 获取etag
String eTag = appendObjectResult.geteTag();
} catch(IOException e) {
log.error("Error occurred", e);
}
纯净模式