我正在使用 Amazon aws Java SDK 进行编码。
我已经使用 SSE-C(使用客户提供的密钥的服务器端加密)将我的一些本地文件上传到 S3,而没有使用任何加密的文件很少。在其他模块中下载文件之前,我需要确保该特定文件是否已加密。我已经提到了这个链接。但此过程适用于使用 SSE(与 SSE-C 不同)加密的文件。在参考了 Amazon aws Java API 之后,我编写了以下代码。
Base64 b = new Base64();
byte[] keyBytes = b.decode("encryptionKey");
SecretKey key = new SecretKeySpec(keyBytes,0,keyBytes.length,"AES");
SSECustomerKey sseKey = new SSECustomerKey(key);
GetObjectMetadataRequest request2 =new GetObjectMetadataRequest("bucketname","keyname").withSSECustomerKey(sseKey);
ObjectMetadata metadata = s3client.getObjectMetadata(request2);
System.out.println("Encryption algorithm used: " + metadata.getSSECustomerAlgorithm());
上面的代码可以正常下载加密文件。但是在下载未加密的文件时出现异常。
是否有任何通用 API 来获取加密和非加密文件的元数据。