gpt4 book ai didi

java - 如何在上传到亚马逊s3时将md5设置为文件

转载 作者:行者123 更新时间:2023-12-01 12:27:21 28 4
gpt4 key购买 nike

我正在使用 amazon s3 android low level sdk 上传文件,并希望设置 md5 校验和来上传数据。

1)以下是创建凭据的代码:

 BasicAWSCredentials lAwsCredentials = new BasicAWSCredentials(
Constants.ACCESS_KEY_ID, Constants.SECRET_KEY);

AmazonS3Client lS3Client = new AmazonS3Client(lAwsCredentials);

2)下面是计算md5的代码

public class MD5CheckSum {

public static byte[] createChecksum(String pFilepath) throws Exception {
InputStream lFis = new FileInputStream(pFilepath);

byte[] lBuffer = new byte[1024];
MessageDigest lMessageDigest = MessageDigest.getInstance("MD5");

int lNumRead;

do {
lNumRead = lFis.read(lBuffer);
if (lNumRead > 0) {
lMessageDigest.update(lBuffer, 0, lNumRead);
}
} while (lNumRead != -1);

lFis.close();
return lMessageDigest.digest();
}

public static String getMD5Checksum(String pFilepath) throws Exception {
byte[] lBytes = createChecksum(pFilepath);
return Base64.encodeToString(lBytes, Base64.DEFAULT);
}

}

3)以下是使用元数据设置md5的代码:

try {
lMd5 = MD5CheckSum.getMD5Checksum(pFile.getAbsolutePath());

Log.v(TAG, "CheckSum:====" + lMd5);
} catch (Exception lException) {
lException.printStackTrace();
}

ObjectMetadata lObjectMetadata = new ObjectMetadata();
if (lMd5 != null) {
lObjectMetadata.setContentMD5(lMd5);

}`
InitiateMultipartUploadResult mInitResponse = mS3Client.initiateMultipartUpload(new InitiateMultipartUploadRequest(mBucketName, mKeyName,
lObjectMetadata);

但是当我设置 md5 时,亚马逊抛出异常:

Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Anonymous users cannot initiate multipart uploads. Please authenticate. (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: BA0C68FC884703FD), S3 Extended Request ID: re2sdbzf8MMqGAyrNQOoqYJ8EdXERoWE7cjG+UpfAtFuP5IeAbXmk6Riw+PX8Uw3Jcspn1rSQvI=

这是设置 md5 的正确方法吗?

注意:当未设置 md5(即未设置 objectmetadata)时,上传正常,没有任何异常

最佳答案

我也遇到过这样的问题..

我通过添加 Base64.DEFAULT 而不是其他内容(例如 WRAPNO_WRAP)来修复。

关于java - 如何在上传到亚马逊s3时将md5设置为文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26213121/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com