OSS Android SDK提供了数据完整性校验方法,保证您在上传、下载和拷贝过程中数据的安全性。
背景信息
由于移动端网络环境的复杂性,数据在客户端和服务器之间传输时可能会出错。为此,OSS Android SDK提供了基于CRC端到端以及MD5两种数据完整性校验方式。
CRC校验
在读取下载数据流的时候,如果开启了CRC校验,会在数据流读取完毕后自动验证数据完整性。
以下代码用于开启CRC校验:
GetObjectRequest request = new GetObjectRequest(OSSTestConfig.ANDROID_TEST_BUCKET, testFile);
// 开启CRC效验。
request.setCRC64(OSSRequest.CRC64Config.YES);
//....
try{
GetObjectResult result = oss.getObject(request);
InputStream in = result.getObjectContent();
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[BUFFER_SIZE];
int len;
while ((len = in.read(buffer)) > -1) {
output.write(buffer, 0, len);
}
output.flush();
in.close();
}catch(ClientException e){
//...
}catch(InconsistentException e){
//....
}
MD5校验
如果要校验分片上传到OSS的文件和本地文件是否一致,可以在上传分片时携带分片的Content-MD5值,OSS服务器会帮助用户进行MD5校验。只有OSS服务器接收到的分片MD5值和Content-MD5一致时才可以上传成功,从而保证上传分片的一致性。
以下代码用于设置MD5验证:
// 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt),Object完整路径中不能包含Bucket名称。
UploadPartRequest uploadPart = new UploadPartRequest("examplebucket", "exampledir/exampleobject.txt", uploadId, currentIndex);
// 设置分片内容。
uploadPart.setPartContent(partData);
// 设置MD5内容。
uploadPart.setMd5Digest(BinaryUtil.calculateBase64Md5(data));
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/156838.html