aws s3 android sdk,兼容S3 SDK-Android

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

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, HeaderSigningResult headerSign

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值