Я пытаюсь загрузить файл с помощью Java в корзину AWS S3.
У меня есть политика ниже, которая должна ограничивать файлы, которые не зашифрованы.
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "DenyUnEncryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::file-upload-test/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
}
]
}
Теперь, когда япопробуйте использовать приведенный ниже код, я получаю исключение Access Denied.
com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: F287836ABBF2B486)
Я использую код Java:
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentLength(fileSize);
objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
objectMetadata.setContentType(contentType);
putObjectRequest = new PutObjectRequest(bucketName, fileName, inputStream, objectMetadata);
s3client.putObject(putObjectRequest);
Это правильно, что я должен использовать этот код Javaдля достижения этой цели?
Если да, то какие модификации требуются.Если нет, то я должен использовать шифрование на стороне клиента?
Пожалуйста, предложите.