SDK-Android
概述
您可以使用Android SDK管理互盟云对象存储,可从https://github.com/aws/aws-sdk-android 下载Android Source Code
操作
由于android sdk用chunk 方式进行传输,并且把chunk-signature放置在body中,oss不支持这种case;sdk中支持的参数 S3ClientOptions.builder.disableChunkedEncoding在判断的时候并没有采用,因而需要更深层次的hack,需要继承AWSS3V4Signer.java并且覆盖原始的processRequestPayload(计算payload的签名并放在body的开头)和calculateContentHash(长度包含签名部分),代码如下:
package com.amazonaws.demo.s3transferutility;
import com.amazonaws.AmazonClientException;
import com.amazonaws.Request;
import com.amazonaws.services.s3.Headers;
import com.amazonaws.services.s3.internal.AWSS3V4Signer;
import com.amazonaws.util.BinaryUtils;
import java.io.IOException;
import java.io.InputStream;
public class HmAWSS3V4Signerextends AWSS3V4Signer{
@Override
protectedvoid processRequestPayload(Request> request, HeaderSigningR

本文介绍了如何通过修改和扩展AWS S3 Android SDK,创建HmAWSS3V4Signer类以解决SDK与互盟云OSS不兼容的问题。详细步骤包括覆盖原始的processRequestPayload和calculateContentHash方法,并注册自定义签名器,以实现上传文件的兼容性。
最低0.47元/天 解锁文章
4037

被折叠的 条评论
为什么被折叠?



