Android平台下AmazonS3预签名URL的改进。
创始人
2024-10-09 13:32:48
0

AmazonS3提供了预签名URL以允许有授权的用户访问Bucket中的对象,该URL可以在一段时间内有效。然而,在Android平台下使用预签名URL仍然存在一些问题。

首先,由于Android平台下的HttpURLConnection具有连接复用机制,会导致同一连接上的请求出现头信息冲突的问题,因此需要手动断开连接,以便每次请求都能够带上正确的头信息。

其次,对于使用签名v4的Bucket,需要在请求头中添加Content-MD5字段以避免出现错误的签名,同时还需要在签名计算中考虑到该字段的影响。

最后,为了确保安全性,应该给预签名URL设置过期时间,以限制URL的有效时间。

以下代码示例展示了如何在Android平台下为AmazonS3预签名URL添加上述改进:

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Base64;
import java.util.Locale;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

public class S3PresignedURL {

    private static final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
    private static final String SIGNATURE_VERSION = "AWS4-HMAC-SHA256";
    private static final String AWS_SECRET_ACCESS_KEY = "";
    private static final String AWS_ACCESS_KEY_ID = "";
    private static final String S3_BUCKET_NAME = "";
    private static final String S3_OBJECT_KEY = "";
    private static final int URL_EXPIRATION_SECONDS = 300;

    public static String getPresignedURL() {
        String url = null;
        String amzDate = LocalDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("

相关内容

热门资讯

截至发稿!大当家脚本app!原... 截至发稿!大当家脚本app!原来存在有开挂辅助挂(有挂细节)-哔哩哔哩运大当家脚本app辅助工具,进...
推出新举措!微乐小程序辅助工具... 推出新举措!微乐小程序辅助工具!一直真的有开挂辅助挂(新版有挂)-哔哩哔哩1、每一步都需要思考,不同...
有消息称!新西游脚本辅助!好像... 有消息称!新西游脚本辅助!好像真的是有开挂辅助工具(有挂方略)-哔哩哔哩1、金币登录送、破产送、升级...
来临!闲娱江西脚本!一贯是有开... 来临!闲娱江西脚本!一贯是有开挂辅助工具(的确有挂)-哔哩哔哩1、金币登录送、破产送、升级送、活动送...
第三方辅助挂!拼十辅助器!都是... 第三方辅助挂!拼十辅助器!都是确实有开挂辅助器(有挂秘笈)-哔哩哔哩1、起透看视 拼十辅助器辅助软件...
迎来新发展!一起温州游戏辅助器... 迎来新发展!一起温州游戏辅助器!一贯真的是有开挂辅助app(有挂总结)-哔哩哔哩1、一起温州游戏辅助...
据玩家消息!圈麻圈脚本辅助!确... 据玩家消息!圈麻圈脚本辅助!确实确实有开挂辅助工具(有挂详情)-哔哩哔哩圈麻圈脚本辅助是不是有人用挂...
今天下午!心悦手游辅助!一贯真... 今天下午!心悦手游辅助!一贯真的是有开挂辅助app(有挂方略)-哔哩哔哩小薇(辅助器软件下载)致您一...
不少玩家反映!新518互游有没... 不少玩家反映!新518互游有没有脚本!总是是有开挂辅助技巧(有挂透明挂)-哔哩哔哩1、任何新518互...
插件辅助挂!开心十三张有没有挂... 插件辅助挂!开心十三张有没有挂!竟然是有开挂辅助脚本(有挂透明挂)-哔哩哔哩1)开心十三张有没有挂免...